@citolab/qti-components 7.3.18 → 7.3.20

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 (473) hide show
  1. package/cdn/chunks/chunk-23JT53R2.js +1 -0
  2. package/cdn/chunks/chunk-26QYN3JJ.js +1482 -0
  3. package/cdn/chunks/chunk-2N2XIR3B.js +5 -0
  4. package/cdn/chunks/chunk-2OA2G5PN.js +5 -0
  5. package/cdn/chunks/chunk-2PXIZTCM.js +1 -0
  6. package/cdn/chunks/chunk-3H3ITD2Q.js +5 -0
  7. package/cdn/chunks/chunk-3HIY5HSB.js +1 -0
  8. package/cdn/chunks/chunk-3PVCPEFY.js +5 -0
  9. package/cdn/chunks/chunk-3WY3AI3D.js +1482 -0
  10. package/cdn/chunks/chunk-3YF52BZZ.js +41 -0
  11. package/cdn/chunks/chunk-3ZFHDJHW.js +3636 -0
  12. package/cdn/chunks/chunk-3ZLIRREM.js +1466 -0
  13. package/cdn/chunks/chunk-426N5A5I.js +1 -0
  14. package/cdn/chunks/chunk-453G3A34.js +8 -0
  15. package/cdn/chunks/chunk-4F3OLGZ4.js +5 -0
  16. package/cdn/chunks/chunk-4YPL4JG2.js +1 -0
  17. package/cdn/chunks/chunk-5ICSVSCW.js +1482 -0
  18. package/cdn/chunks/chunk-5WPKWVLA.js +1 -0
  19. package/cdn/chunks/chunk-63C5YDWF.js +1482 -0
  20. package/cdn/chunks/chunk-6FSYASNZ.js +1 -0
  21. package/cdn/chunks/chunk-6H26KONO.js +1482 -0
  22. package/cdn/chunks/chunk-6IY26BVE.js +23 -0
  23. package/cdn/chunks/chunk-6OUX6PKB.js +5 -0
  24. package/cdn/chunks/chunk-74FJHIJ5.js +8 -0
  25. package/cdn/chunks/chunk-77U2O27N.js +1 -0
  26. package/cdn/chunks/chunk-7AX6K3VW.js +1 -0
  27. package/cdn/chunks/chunk-7HEAECQ2.js +1466 -0
  28. package/cdn/chunks/chunk-7LCGB3GF.js +6 -0
  29. package/cdn/chunks/chunk-7NHDLON4.js +5 -0
  30. package/cdn/chunks/chunk-7T6OJ2OQ.js +1482 -0
  31. package/cdn/chunks/chunk-ARUVWWSO.js +5 -0
  32. package/cdn/chunks/chunk-B7NVY4AR.js +23 -0
  33. package/cdn/chunks/chunk-BFMN6REI.js +5 -0
  34. package/cdn/chunks/chunk-BGWSUBMK.js +1482 -0
  35. package/cdn/chunks/chunk-BSK7IIBZ.js +1 -0
  36. package/cdn/chunks/chunk-BUGBHX3F.js +5 -0
  37. package/cdn/chunks/chunk-BXEEPJPF.js +48 -0
  38. package/cdn/chunks/chunk-BXTNMGCF.js +1 -0
  39. package/cdn/chunks/chunk-C25DJHRW.js +5 -0
  40. package/cdn/chunks/chunk-C3XRHLQX.js +1 -0
  41. package/cdn/chunks/chunk-CGI4LREF.js +1 -0
  42. package/cdn/chunks/chunk-CLAUENYE.js +8 -0
  43. package/cdn/chunks/chunk-CYSQXIRZ.js +5 -0
  44. package/cdn/chunks/chunk-DD55IQIL.js +6 -0
  45. package/cdn/chunks/chunk-DHNKVZRG.js +1 -0
  46. package/cdn/chunks/chunk-DXF4ZBJ2.js +1 -0
  47. package/cdn/chunks/chunk-E2UBGM45.js +1 -0
  48. package/cdn/chunks/chunk-E6IOJ4MV.js +23 -0
  49. package/cdn/chunks/chunk-ECKBRC27.js +1482 -0
  50. package/cdn/chunks/chunk-ECLB2ECD.js +5 -0
  51. package/cdn/chunks/chunk-EINATJIA.js +1 -0
  52. package/cdn/chunks/chunk-EXMUQYL6.js +5 -0
  53. package/cdn/chunks/chunk-FDOVZYP4.js +5 -0
  54. package/cdn/chunks/chunk-FDV6POVV.js +6 -0
  55. package/cdn/chunks/chunk-FOE7HRKJ.js +10 -0
  56. package/cdn/chunks/chunk-FVIBMJDJ.js +5 -0
  57. package/cdn/chunks/chunk-G2DN6BDN.js +8 -0
  58. package/cdn/chunks/chunk-GBAAEAYK.js +5 -0
  59. package/cdn/chunks/chunk-GDRPZEZJ.js +5 -0
  60. package/cdn/chunks/chunk-GFXQHIPI.js +1482 -0
  61. package/cdn/chunks/chunk-GTSQO7SP.js +1 -0
  62. package/cdn/chunks/chunk-GVZHKB2Y.js +1482 -0
  63. package/cdn/chunks/chunk-GY74IPZ2.js +8 -0
  64. package/cdn/chunks/chunk-HA6MFZZU.js +48 -0
  65. package/cdn/chunks/chunk-HHALXPVF.js +5 -0
  66. package/cdn/chunks/chunk-HPX7CBTS.js +1 -0
  67. package/cdn/chunks/chunk-I3PDGPL6.js +48 -0
  68. package/cdn/chunks/chunk-I4G5VXGD.js +5 -0
  69. package/cdn/chunks/chunk-IJBHBPIR.js +1 -0
  70. package/cdn/chunks/chunk-IMHR3S57.js +1 -0
  71. package/cdn/chunks/chunk-IPISUVWE.js +8 -0
  72. package/cdn/chunks/chunk-J3NAMJRF.js +55 -0
  73. package/cdn/chunks/chunk-JG53AUXR.js +1 -0
  74. package/cdn/chunks/chunk-JHMA3APO.js +3638 -0
  75. package/cdn/chunks/chunk-JJNOTSC4.js +5 -0
  76. package/cdn/chunks/chunk-JVPQQZNX.js +5 -0
  77. package/cdn/chunks/chunk-JVW572MO.js +1 -0
  78. package/cdn/chunks/chunk-JYF2SOPC.js +6 -0
  79. package/cdn/chunks/chunk-K42MGICV.js +1 -0
  80. package/cdn/chunks/chunk-K7NB4LHE.js +1 -0
  81. package/cdn/chunks/chunk-KM5SOM7G.js +1482 -0
  82. package/cdn/chunks/chunk-KP6MWEDW.js +5 -0
  83. package/cdn/chunks/chunk-KWDCU3P6.js +1482 -0
  84. package/cdn/chunks/chunk-KY3OKCFK.js +8 -0
  85. package/cdn/chunks/chunk-KY6SSNGO.js +5 -0
  86. package/cdn/chunks/chunk-LO2NM3CE.js +1 -0
  87. package/cdn/chunks/chunk-LS3OPHR4.js +8 -0
  88. package/cdn/chunks/chunk-M544CJHK.js +5 -0
  89. package/cdn/chunks/chunk-M5UOISZJ.js +1482 -0
  90. package/cdn/chunks/chunk-MAPVFADC.js +5 -0
  91. package/cdn/chunks/chunk-MICRS5DH.js +8 -0
  92. package/cdn/chunks/chunk-MVGI4SNI.js +17 -0
  93. package/cdn/chunks/chunk-MYXD4BOJ.js +2 -0
  94. package/cdn/chunks/chunk-MZRZP33C.js +1 -0
  95. package/cdn/chunks/chunk-N4LMZHIZ.js +5 -0
  96. package/cdn/chunks/chunk-NHHA3O6Y.js +1 -0
  97. package/cdn/chunks/chunk-NJ3OVLBF.js +1 -0
  98. package/cdn/chunks/chunk-NVZTYSGS.js +1 -0
  99. package/cdn/chunks/chunk-NXQQIB7Y.js +5 -0
  100. package/cdn/chunks/chunk-ODYPYZCY.js +5 -0
  101. package/cdn/chunks/chunk-OENDUEU2.js +5 -0
  102. package/cdn/chunks/chunk-ON6ISIIV.js +1 -0
  103. package/cdn/chunks/chunk-OOEY4RSQ.js +1 -0
  104. package/cdn/chunks/chunk-OUQFWBVG.js +8 -0
  105. package/cdn/chunks/chunk-P5MQE2M6.js +5 -0
  106. package/cdn/chunks/chunk-PMYTST5N.js +17 -0
  107. package/cdn/chunks/chunk-PPSGCGRR.js +8 -0
  108. package/cdn/chunks/chunk-Q4EENVQD.js +1 -0
  109. package/cdn/chunks/chunk-Q64V7VQU.js +1 -0
  110. package/cdn/chunks/chunk-QCDT25GU.js +8 -0
  111. package/cdn/chunks/chunk-QYCLNTAQ.js +1 -0
  112. package/cdn/chunks/chunk-RKU2XDKG.js +2 -0
  113. package/cdn/chunks/chunk-RQSAQ6H4.js +1 -0
  114. package/cdn/chunks/chunk-RTVTE2XY.js +1482 -0
  115. package/cdn/chunks/chunk-SBACDLL6.js +73 -0
  116. package/cdn/chunks/chunk-SVVO2SFS.js +1 -0
  117. package/cdn/chunks/chunk-SVWD3DJK.js +1 -0
  118. package/cdn/chunks/chunk-TOK64KBR.js +5 -0
  119. package/cdn/chunks/chunk-V2NH5MXS.js +5 -0
  120. package/cdn/chunks/chunk-V3EJROZX.js +3649 -0
  121. package/cdn/chunks/chunk-VB3GRBCX.js +1 -0
  122. package/cdn/chunks/chunk-VNZCEVYY.js +24 -0
  123. package/cdn/chunks/chunk-VUJWHOI6.js +1482 -0
  124. package/cdn/chunks/chunk-WOKUXDJR.js +8 -0
  125. package/cdn/chunks/chunk-WPXZSIUM.js +5 -0
  126. package/cdn/chunks/chunk-WTUHCDEZ.js +10 -0
  127. package/cdn/chunks/chunk-X4FA36TC.js +1 -0
  128. package/cdn/chunks/chunk-XA25EXKN.js +1 -0
  129. package/cdn/chunks/chunk-XBLYTLX6.js +5 -0
  130. package/cdn/chunks/chunk-XH36X5UJ.js +1482 -0
  131. package/cdn/chunks/chunk-XHSJOTCJ.js +5 -0
  132. package/cdn/chunks/chunk-XJ2CFTZP.js +1 -0
  133. package/cdn/chunks/chunk-XLFLYMNJ.js +1482 -0
  134. package/cdn/chunks/chunk-XYWB7S55.js +1482 -0
  135. package/cdn/chunks/chunk-Y3BICHQ5.js +6 -0
  136. package/cdn/chunks/chunk-YEK2E3FB.js +8 -0
  137. package/cdn/chunks/chunk-YIRZSKIP.js +2 -0
  138. package/cdn/chunks/chunk-YM5QNYGZ.js +5 -0
  139. package/cdn/chunks/chunk-YOTJAW26.js +6 -0
  140. package/cdn/chunks/chunk-Z7KIJX7V.js +1482 -0
  141. package/cdn/chunks/chunk-ZCQFKXZ3.js +48 -0
  142. package/cdn/chunks/chunk-ZKOKGZBL.js +5 -0
  143. package/cdn/exports/computed-item.context.js +1 -1
  144. package/cdn/exports/computed.context.js +1 -1
  145. package/cdn/exports/config.context.js +1 -1
  146. package/cdn/exports/interaction.js +1 -1
  147. package/cdn/exports/item.context.js +1 -1
  148. package/cdn/exports/qti-assessment-item.context.js +1 -1
  149. package/cdn/exports/qti-condition-expression.js +1 -1
  150. package/cdn/exports/qti-expression.js +1 -1
  151. package/cdn/exports/qti.context.js +1 -0
  152. package/cdn/exports/session.context.js +1 -1
  153. package/cdn/exports/test.context.js +1 -1
  154. package/cdn/index.global.js +1 -1
  155. package/cdn/index.js +1 -1
  156. package/cdn/qti-components/index.js +1 -1
  157. package/cdn/qti-item/components/item-container.js +1 -1
  158. package/cdn/qti-item/components/item-correct-response-mode.js +10 -0
  159. package/cdn/qti-item/components/item-show-candidate-correction.js +8 -0
  160. package/cdn/qti-item/components/item-show-correct-response.js +1 -1
  161. package/cdn/qti-item/components/print-item-variables.js +1 -1
  162. package/cdn/qti-item/components/styles.js +1 -1
  163. package/cdn/qti-item/core/index.js +1 -1
  164. package/cdn/qti-loader/index.js +1 -1
  165. package/cdn/qti-test/components/index.js +1 -1
  166. package/cdn/qti-test/components/styles.js +1 -1
  167. package/cdn/qti-test/components/test-check-item.js +1 -1
  168. package/cdn/qti-test/components/test-container.js +1 -1
  169. package/cdn/qti-test/components/test-end-attempt.js +1 -1
  170. package/cdn/qti-test/components/test-item-link.js +1 -1
  171. package/cdn/qti-test/components/test-navigation.js +1 -1
  172. package/cdn/qti-test/components/test-next.js +1 -1
  173. package/cdn/qti-test/components/test-paging-buttons-stamp.js +1 -1
  174. package/cdn/qti-test/components/test-prev.js +1 -1
  175. package/cdn/qti-test/components/test-print-context.js +1 -1
  176. package/cdn/qti-test/components/test-print-item-variables.js +1 -1
  177. package/cdn/qti-test/components/test-scoring-buttons.js +1 -1
  178. package/cdn/qti-test/components/test-scoring-feedback.js +1 -1
  179. package/cdn/qti-test/components/test-section-buttons-stamp.js +1 -1
  180. package/cdn/qti-test/components/test-section-link.js +1 -1
  181. package/cdn/qti-test/components/test-show-correct-response.js +1 -1
  182. package/cdn/qti-test/components/test-stamp.js +1 -1
  183. package/cdn/qti-test/components/test-view-toggle.js +1 -1
  184. package/cdn/qti-test/components/test-view.js +1 -1
  185. package/cdn/qti-test/core/index.js +1 -1
  186. package/cdn/qti-transformers/index.js +1 -1
  187. package/dist/chunks/chunk-2EGQQQHL.js +31 -0
  188. package/dist/chunks/chunk-2EGQQQHL.js.map +1 -0
  189. package/dist/chunks/chunk-32TQEF77.js +142 -0
  190. package/dist/chunks/chunk-32TQEF77.js.map +1 -0
  191. package/dist/chunks/chunk-34THNRGC.js +8093 -0
  192. package/dist/chunks/chunk-34THNRGC.js.map +1 -0
  193. package/dist/chunks/chunk-3O3BVPXQ.js +8655 -0
  194. package/dist/chunks/chunk-3O3BVPXQ.js.map +1 -0
  195. package/dist/chunks/chunk-3SABVS4P.js +19 -0
  196. package/dist/chunks/chunk-3SABVS4P.js.map +1 -0
  197. package/dist/chunks/chunk-45FDEM7M.js +94 -0
  198. package/dist/chunks/chunk-45FDEM7M.js.map +1 -0
  199. package/dist/chunks/chunk-4A6SHFWN.js +8093 -0
  200. package/dist/chunks/chunk-4A6SHFWN.js.map +1 -0
  201. package/dist/chunks/chunk-4B4DRCXO.js +94 -0
  202. package/dist/chunks/chunk-4B4DRCXO.js.map +1 -0
  203. package/dist/chunks/chunk-4D3G23AV.js +94 -0
  204. package/dist/chunks/chunk-4D3G23AV.js.map +1 -0
  205. package/dist/chunks/chunk-565QP4OA.js +94 -0
  206. package/dist/chunks/chunk-565QP4OA.js.map +1 -0
  207. package/dist/chunks/chunk-5IYIGX6A.js +94 -0
  208. package/dist/chunks/chunk-5IYIGX6A.js.map +1 -0
  209. package/dist/chunks/chunk-5MAENJ2J.js +913 -0
  210. package/dist/chunks/chunk-5MAENJ2J.js.map +1 -0
  211. package/dist/chunks/chunk-6EQ4U5EP.js +142 -0
  212. package/dist/chunks/chunk-6EQ4U5EP.js.map +1 -0
  213. package/dist/chunks/chunk-6NLDLAQA.js +367 -0
  214. package/dist/chunks/chunk-6NLDLAQA.js.map +1 -0
  215. package/dist/chunks/chunk-6OB2U3VU.js +287 -0
  216. package/dist/chunks/chunk-6OB2U3VU.js.map +1 -0
  217. package/dist/chunks/chunk-7XIK3UQX.js +3628 -0
  218. package/dist/chunks/chunk-7XIK3UQX.js.map +1 -0
  219. package/dist/chunks/chunk-7Z7KA2QQ.js +142 -0
  220. package/dist/chunks/chunk-7Z7KA2QQ.js.map +1 -0
  221. package/dist/chunks/chunk-AH3ZDQHQ.js +913 -0
  222. package/dist/chunks/chunk-AH3ZDQHQ.js.map +1 -0
  223. package/dist/chunks/chunk-AVMYQQT2.js +94 -0
  224. package/dist/chunks/chunk-AVMYQQT2.js.map +1 -0
  225. package/dist/chunks/chunk-B2IUQFUU.js +913 -0
  226. package/dist/chunks/chunk-B2IUQFUU.js.map +1 -0
  227. package/dist/chunks/chunk-B2O3YM5H.js +8093 -0
  228. package/dist/chunks/chunk-B2O3YM5H.js.map +1 -0
  229. package/dist/chunks/chunk-BAZMB7Z3.js +8009 -0
  230. package/dist/chunks/chunk-BAZMB7Z3.js.map +1 -0
  231. package/dist/chunks/chunk-BXUNJ6XB.js +78 -0
  232. package/dist/chunks/chunk-BXUNJ6XB.js.map +1 -0
  233. package/dist/chunks/chunk-CTESMSQO.js +56 -0
  234. package/dist/chunks/chunk-CTESMSQO.js.map +1 -0
  235. package/dist/chunks/chunk-CVMIO3DA.js +913 -0
  236. package/dist/chunks/chunk-CVMIO3DA.js.map +1 -0
  237. package/dist/chunks/chunk-D2VLZ4I5.js +8755 -0
  238. package/dist/chunks/chunk-D2VLZ4I5.js.map +1 -0
  239. package/dist/chunks/chunk-DDSFGYAK.js +913 -0
  240. package/dist/chunks/chunk-DDSFGYAK.js.map +1 -0
  241. package/dist/chunks/chunk-DJUWVE3Q.js +8655 -0
  242. package/dist/chunks/chunk-DJUWVE3Q.js.map +1 -0
  243. package/dist/chunks/chunk-DJWEI2NH.js +502 -0
  244. package/dist/chunks/chunk-DJWEI2NH.js.map +1 -0
  245. package/dist/chunks/chunk-DPJNXSTI.js +19 -0
  246. package/dist/chunks/chunk-DPJNXSTI.js.map +1 -0
  247. package/dist/chunks/chunk-E6V3JHVT.js +31 -0
  248. package/dist/chunks/chunk-E6V3JHVT.js.map +1 -0
  249. package/dist/chunks/chunk-E7DT7SMT.js +8655 -0
  250. package/dist/chunks/chunk-E7DT7SMT.js.map +1 -0
  251. package/dist/chunks/chunk-EBODGAT7.js +113 -0
  252. package/dist/chunks/chunk-EBODGAT7.js.map +1 -0
  253. package/dist/chunks/chunk-EFY3NEXY.js +94 -0
  254. package/dist/chunks/chunk-EFY3NEXY.js.map +1 -0
  255. package/dist/chunks/chunk-EMOJR4QG.js +913 -0
  256. package/dist/chunks/chunk-EMOJR4QG.js.map +1 -0
  257. package/dist/chunks/chunk-EXBK4TXV.js +273 -0
  258. package/dist/chunks/chunk-EXBK4TXV.js.map +1 -0
  259. package/dist/chunks/chunk-F6RSPPVW.js +94 -0
  260. package/dist/chunks/chunk-F6RSPPVW.js.map +1 -0
  261. package/dist/chunks/chunk-FXO6HW6L.js +8084 -0
  262. package/dist/chunks/chunk-FXO6HW6L.js.map +1 -0
  263. package/dist/chunks/chunk-GFCOR6TX.js +146 -0
  264. package/dist/chunks/chunk-GFCOR6TX.js.map +1 -0
  265. package/dist/chunks/chunk-GIY6GNXQ.js +913 -0
  266. package/dist/chunks/chunk-GIY6GNXQ.js.map +1 -0
  267. package/dist/chunks/chunk-GMXDW4I3.js +913 -0
  268. package/dist/chunks/chunk-GMXDW4I3.js.map +1 -0
  269. package/dist/chunks/chunk-GQUBYVP3.js +913 -0
  270. package/dist/chunks/chunk-GQUBYVP3.js.map +1 -0
  271. package/dist/chunks/chunk-GT6TR4B6.js +94 -0
  272. package/dist/chunks/chunk-GT6TR4B6.js.map +1 -0
  273. package/dist/chunks/chunk-H67RKRFW.js +94 -0
  274. package/dist/chunks/chunk-H67RKRFW.js.map +1 -0
  275. package/dist/chunks/chunk-H6KHXSIO.js +8 -0
  276. package/dist/chunks/chunk-H6KHXSIO.js.map +1 -0
  277. package/dist/chunks/chunk-HEP5QRPW.js +94 -0
  278. package/dist/chunks/chunk-HEP5QRPW.js.map +1 -0
  279. package/dist/chunks/chunk-HYMSLOZ7.js +103 -0
  280. package/dist/chunks/chunk-HYMSLOZ7.js.map +1 -0
  281. package/dist/chunks/chunk-I5EA6DJB.js +92 -0
  282. package/dist/chunks/chunk-I5EA6DJB.js.map +1 -0
  283. package/dist/chunks/chunk-IAEGLQ4C.js +144 -0
  284. package/dist/chunks/chunk-IAEGLQ4C.js.map +1 -0
  285. package/dist/chunks/chunk-J2HZTWER.js +8093 -0
  286. package/dist/chunks/chunk-J2HZTWER.js.map +1 -0
  287. package/dist/chunks/chunk-JARLFKS7.js +913 -0
  288. package/dist/chunks/chunk-JARLFKS7.js.map +1 -0
  289. package/dist/chunks/chunk-JATNQ3KB.js +913 -0
  290. package/dist/chunks/chunk-JATNQ3KB.js.map +1 -0
  291. package/dist/chunks/chunk-KCTFNJO4.js +8748 -0
  292. package/dist/chunks/chunk-KCTFNJO4.js.map +1 -0
  293. package/dist/chunks/chunk-KJQYKXDV.js +173 -0
  294. package/dist/chunks/chunk-KJQYKXDV.js.map +1 -0
  295. package/dist/chunks/chunk-KXVYWSJU.js +8068 -0
  296. package/dist/chunks/chunk-KXVYWSJU.js.map +1 -0
  297. package/dist/chunks/chunk-LU5A5PN5.js +8084 -0
  298. package/dist/chunks/chunk-LU5A5PN5.js.map +1 -0
  299. package/dist/chunks/chunk-LUZGWGSR.js +913 -0
  300. package/dist/chunks/chunk-LUZGWGSR.js.map +1 -0
  301. package/dist/chunks/chunk-MI7IF36Z.js +367 -0
  302. package/dist/chunks/chunk-MI7IF36Z.js.map +1 -0
  303. package/dist/chunks/chunk-MOBVIJE2.js +913 -0
  304. package/dist/chunks/chunk-MOBVIJE2.js.map +1 -0
  305. package/dist/chunks/chunk-NBENQI27.js +273 -0
  306. package/dist/chunks/chunk-NBENQI27.js.map +1 -0
  307. package/dist/chunks/chunk-NEAO4XCM.js +913 -0
  308. package/dist/chunks/chunk-NEAO4XCM.js.map +1 -0
  309. package/dist/chunks/chunk-NJ5O743W.js +311 -0
  310. package/dist/chunks/chunk-NJ5O743W.js.map +1 -0
  311. package/dist/chunks/chunk-NMQ4USN7.js +913 -0
  312. package/dist/chunks/chunk-NMQ4USN7.js.map +1 -0
  313. package/dist/chunks/chunk-NPZ3WHOS.js +94 -0
  314. package/dist/chunks/chunk-NPZ3WHOS.js.map +1 -0
  315. package/dist/chunks/chunk-NRKCQIQS.js +8 -0
  316. package/dist/chunks/chunk-NRKCQIQS.js.map +1 -0
  317. package/dist/chunks/chunk-NRNSOUTF.js +913 -0
  318. package/dist/chunks/chunk-NRNSOUTF.js.map +1 -0
  319. package/dist/chunks/chunk-OBAABB63.js +8093 -0
  320. package/dist/chunks/chunk-OBAABB63.js.map +1 -0
  321. package/dist/chunks/chunk-OGAKPUCC.js +502 -0
  322. package/dist/chunks/chunk-OGAKPUCC.js.map +1 -0
  323. package/dist/chunks/chunk-OREGQJ7H.js +19 -0
  324. package/dist/chunks/chunk-OREGQJ7H.js.map +1 -0
  325. package/dist/chunks/chunk-RJZ4D6XM.js +88 -0
  326. package/dist/chunks/chunk-RJZ4D6XM.js.map +1 -0
  327. package/dist/chunks/chunk-RL3NBBKW.js +913 -0
  328. package/dist/chunks/chunk-RL3NBBKW.js.map +1 -0
  329. package/dist/chunks/chunk-S72IAWSO.js +8770 -0
  330. package/dist/chunks/chunk-S72IAWSO.js.map +1 -0
  331. package/dist/chunks/chunk-SDN2PXF7.js +94 -0
  332. package/dist/chunks/chunk-SDN2PXF7.js.map +1 -0
  333. package/dist/chunks/chunk-SRJF5RCP.js +8772 -0
  334. package/dist/chunks/chunk-SRJF5RCP.js.map +1 -0
  335. package/dist/chunks/chunk-SV356YP4.js +31 -0
  336. package/dist/chunks/chunk-SV356YP4.js.map +1 -0
  337. package/dist/chunks/chunk-TBHIUG43.js +19 -0
  338. package/dist/chunks/chunk-TBHIUG43.js.map +1 -0
  339. package/dist/chunks/chunk-TDIRV53C.js +3626 -0
  340. package/dist/chunks/chunk-TDIRV53C.js.map +1 -0
  341. package/dist/chunks/chunk-TJNZKBEN.js +88 -0
  342. package/dist/chunks/chunk-TJNZKBEN.js.map +1 -0
  343. package/dist/chunks/chunk-TU6COU44.js +82 -0
  344. package/dist/chunks/chunk-TU6COU44.js.map +1 -0
  345. package/dist/chunks/chunk-UHQVQBCL.js +89 -0
  346. package/dist/chunks/chunk-UHQVQBCL.js.map +1 -0
  347. package/dist/chunks/chunk-V7DSDBTC.js +142 -0
  348. package/dist/chunks/chunk-V7DSDBTC.js.map +1 -0
  349. package/dist/chunks/chunk-VCFCYQB4.js +315 -0
  350. package/dist/chunks/chunk-VCFCYQB4.js.map +1 -0
  351. package/dist/chunks/chunk-VEASE2VL.js +913 -0
  352. package/dist/chunks/chunk-VEASE2VL.js.map +1 -0
  353. package/dist/chunks/chunk-VHSCCVNF.js +8024 -0
  354. package/dist/chunks/chunk-VHSCCVNF.js.map +1 -0
  355. package/dist/chunks/chunk-VRR4ODZY.js +8009 -0
  356. package/dist/chunks/chunk-VRR4ODZY.js.map +1 -0
  357. package/dist/chunks/chunk-WFUXZ4UT.js +502 -0
  358. package/dist/chunks/chunk-WFUXZ4UT.js.map +1 -0
  359. package/dist/chunks/chunk-WUSKUUQL.js +3639 -0
  360. package/dist/chunks/chunk-WUSKUUQL.js.map +1 -0
  361. package/dist/chunks/chunk-WVB7FS2F.js +913 -0
  362. package/dist/chunks/chunk-WVB7FS2F.js.map +1 -0
  363. package/dist/chunks/chunk-WY5BKP4C.js +19 -0
  364. package/dist/chunks/chunk-WY5BKP4C.js.map +1 -0
  365. package/dist/chunks/chunk-XFJJETQG.js +913 -0
  366. package/dist/chunks/chunk-XFJJETQG.js.map +1 -0
  367. package/dist/chunks/chunk-XNMAPACM.js +19 -0
  368. package/dist/chunks/chunk-XNMAPACM.js.map +1 -0
  369. package/dist/chunks/chunk-Y2DMMGRW.js +8657 -0
  370. package/dist/chunks/chunk-Y2DMMGRW.js.map +1 -0
  371. package/dist/chunks/chunk-Y3UM2YVB.js +8025 -0
  372. package/dist/chunks/chunk-Y3UM2YVB.js.map +1 -0
  373. package/dist/chunks/chunk-Y4DXEVZM.js +8770 -0
  374. package/dist/chunks/chunk-Y4DXEVZM.js.map +1 -0
  375. package/dist/chunks/chunk-Y4VJXTG5.js +8754 -0
  376. package/dist/chunks/chunk-Y4VJXTG5.js.map +1 -0
  377. package/dist/chunks/chunk-YFTXNRNZ.js +913 -0
  378. package/dist/chunks/chunk-YFTXNRNZ.js.map +1 -0
  379. package/dist/chunks/chunk-YRVKKM47.js +365 -0
  380. package/dist/chunks/chunk-YRVKKM47.js.map +1 -0
  381. package/dist/chunks/chunk-YWEWSQJR.js +40 -0
  382. package/dist/chunks/chunk-YWEWSQJR.js.map +1 -0
  383. package/dist/chunks/chunk-Z3PFCZLH.js +913 -0
  384. package/dist/chunks/chunk-Z3PFCZLH.js.map +1 -0
  385. package/dist/chunks/chunk-ZB27F2HA.js +366 -0
  386. package/dist/chunks/chunk-ZB27F2HA.js.map +1 -0
  387. package/dist/exports/computed-item.context.d.ts +2 -1
  388. package/dist/exports/computed.context.d.ts +3 -2
  389. package/dist/exports/config.context.d.ts +3 -1
  390. package/dist/exports/config.context.js +1 -1
  391. package/dist/exports/expression-result.d.ts +2 -2
  392. package/dist/exports/interaction.d.ts +2 -1
  393. package/dist/exports/interaction.js +2 -1
  394. package/dist/exports/item.context.d.ts +2 -1
  395. package/dist/exports/qti-assessment-item.context.d.ts +2 -1
  396. package/dist/exports/qti-condition-expression.d.ts +2 -1
  397. package/dist/exports/qti-condition-expression.js +3 -2
  398. package/dist/exports/qti-expression.d.ts +2 -1
  399. package/dist/exports/qti-expression.js +2 -1
  400. package/dist/exports/qti-test.d.ts +4 -3
  401. package/dist/exports/qti.context.d.ts +14 -0
  402. package/dist/exports/qti.context.js +8 -0
  403. package/dist/exports/qti.context.js.map +1 -0
  404. package/dist/exports/session.context.d.ts +3 -2
  405. package/dist/exports/test.context.d.ts +2 -1
  406. package/dist/exports/variables.d.ts +2 -1
  407. package/dist/index.d.ts +5 -4
  408. package/dist/index.js +76 -56
  409. package/dist/item.css +28 -16
  410. package/dist/qti-components/index.d.ts +146 -3
  411. package/dist/qti-components/index.js +29 -7
  412. package/dist/qti-components-jsx.d.ts +3777 -1467
  413. package/dist/qti-item/components/item-container.js +3 -3
  414. package/dist/qti-item/components/item-correct-response-mode.d.ts +17 -0
  415. package/dist/qti-item/components/item-correct-response-mode.js +62 -0
  416. package/dist/qti-item/components/item-correct-response-mode.js.map +1 -0
  417. package/dist/qti-item/components/item-show-candidate-correction.d.ts +33 -0
  418. package/dist/qti-item/components/item-show-candidate-correction.js +88 -0
  419. package/dist/qti-item/components/item-show-candidate-correction.js.map +1 -0
  420. package/dist/qti-item/components/item-show-correct-response.d.ts +2 -1
  421. package/dist/qti-item/components/item-show-correct-response.js +1 -1
  422. package/dist/qti-item/components/print-item-variables.d.ts +2 -1
  423. package/dist/qti-item/core/index.d.ts +10 -3
  424. package/dist/qti-item/core/index.js +8 -7
  425. package/dist/qti-loader/index.d.ts +2 -1
  426. package/dist/qti-loader/index.js +2 -2
  427. package/dist/qti-response-declaration-B7a6N0wt.d.ts +1380 -0
  428. package/dist/qti-response-declaration-BTiPhwZv.d.ts +1370 -0
  429. package/dist/qti-response-declaration-Bthfzhwd.d.ts +1385 -0
  430. package/dist/qti-response-declaration-CIPGNbno.d.ts +1361 -0
  431. package/dist/qti-response-declaration-CNP03Vcb.d.ts +1386 -0
  432. package/dist/qti-response-declaration-CTRNB113.d.ts +1385 -0
  433. package/dist/qti-response-declaration-CXb5CI4-.d.ts +1361 -0
  434. package/dist/qti-response-declaration-Cbj7E4ND.d.ts +1372 -0
  435. package/dist/qti-response-declaration-DRNG6zLy.d.ts +1370 -0
  436. package/dist/qti-response-declaration-DuRT3sKx.d.ts +1380 -0
  437. package/dist/qti-response-declaration-GPP3SVur.d.ts +1372 -0
  438. package/dist/qti-response-declaration-xVcD4HvN.d.ts +1386 -0
  439. package/dist/qti-test/components/index.d.ts +3 -2
  440. package/dist/qti-test/components/index.js +33 -33
  441. package/dist/qti-test/components/test-container.js +3 -3
  442. package/dist/qti-test/components/test-navigation.d.ts +16 -3
  443. package/dist/qti-test/components/test-navigation.js +3 -2
  444. package/dist/qti-test/components/test-next.d.ts +3 -2
  445. package/dist/qti-test/components/test-next.js +1 -2
  446. package/dist/qti-test/components/test-prev.d.ts +3 -2
  447. package/dist/qti-test/components/test-prev.js +1 -2
  448. package/dist/qti-test/components/test-print-context.d.ts +3 -2
  449. package/dist/qti-test/components/test-print-item-variables.d.ts +3 -2
  450. package/dist/qti-test/components/test-scoring-buttons.d.ts +3 -2
  451. package/dist/qti-test/components/test-scoring-buttons.js +1 -1
  452. package/dist/qti-test/components/test-scoring-feedback.d.ts +3 -2
  453. package/dist/qti-test/components/test-scoring-feedback.js +1 -1
  454. package/dist/qti-test/components/test-show-correct-response.d.ts +3 -2
  455. package/dist/qti-test/components/test-view.js +2 -2
  456. package/dist/qti-test/core/index.d.ts +4 -3
  457. package/dist/qti-test/core/index.js +11 -10
  458. package/dist/qti-test-feedback-B0W2B5wQ.d.ts +91 -0
  459. package/dist/qti-test-feedback-B1kTnqnI.d.ts +91 -0
  460. package/dist/qti-test-feedback-BAUInn-q.d.ts +91 -0
  461. package/dist/qti-test-feedback-BWerRaNG.d.ts +91 -0
  462. package/dist/qti-test-feedback-BXdbgpY8.d.ts +91 -0
  463. package/dist/qti-test-feedback-Bbt2VWE1.d.ts +91 -0
  464. package/dist/qti-test-feedback-C-PQYZWl.d.ts +91 -0
  465. package/dist/qti-test-feedback-CuTA6S46.d.ts +91 -0
  466. package/dist/qti-test-feedback-DUxJARNH.d.ts +91 -0
  467. package/dist/qti-test-feedback-Ddb0QQyz.d.ts +91 -0
  468. package/dist/qti-test-feedback-SkEfQjOR.d.ts +91 -0
  469. package/dist/qti-test-feedback-TcrkevLg.d.ts +91 -0
  470. package/dist/qti-transformers/index.d.ts +17 -1
  471. package/dist/qti-transformers/index.js +1 -1
  472. package/dist/vscode.html-custom-data.json +162 -39
  473. package/package.json +62 -65
@@ -0,0 +1 @@
1
+ import{a as p}from"./chunk-P6SSTAJ2.js";import{b as s}from"./chunk-7WJYJA45.js";import{a as d,b as c}from"./chunk-42P7F3FC.js";import{d as a,i as m}from"./chunk-65CZNGQC.js";import{a as n}from"./chunk-JR322KXH.js";var o=class extends m{constructor(){super(...arguments);this.view=null}render(){let r=this.computedContext?.testParts.flatMap(t=>t.sections.flatMap(f=>f.items)).find(t=>t.active);if(!r||!r.variables)return a``;if(r.category==="dep-informational")return a`<div>${this.dataset.informational}</div>`;let u=r?.variables.find(t=>t.identifier==="completionStatus")?.value,l=r?.variables.find(t=>t.identifier=="SCORE"),e=parseFloat(l?.value),i=r.externalScored;return a`<div>${u!=="completed"?this.dataset.textNoResponse:!i&&e!==void 0&&!Number.isNaN(e)?e>0?this.dataset.textCorrect:this.dataset.textIncorrect:i==="externalMachine"?Number.isNaN(e)||e===void 0?this.dataset.scoreUnknown:`We hebben je antwoord ${e===0?"geen punten":e==1?"\xE9\xE9n punt":`${e} punten`} gegeven. Je kunt je score zelf aanpassen als je denkt dat dat niet klopt.`:i==="human"?Number.isNaN(e)?"":"Deze score heb je zelf toegekend.":this.dataset.inProgress}</div>`}};n([s({context:p,subscribe:!0})],o.prototype,"computedContext",2),n([c({type:String,attribute:"view"})],o.prototype,"view",2),o=n([d("test-scoring-feedback")],o);export{o as a};
@@ -0,0 +1,5 @@
1
+ import{a as c,b as h}from"./chunk-V3EJROZX.js";import{a as i}from"./chunk-XUJ7TXHW.js";import{c as l}from"./chunk-E6IOJ4MV.js";import{a as n,b as p,c as a}from"./chunk-SBACDLL6.js";import{d as s,i as o}from"./chunk-J3NAMJRF.js";import{a as r}from"./chunk-LO2NM3CE.js";var e=class extends o{constructor(){super(...arguments);this.testURL=null;this.testDoc=null;this.testXML=null;this.templateContent=null}async handleTestURLChange(){if(this.testURL)try{let t=await l().load(this.testURL);this.testDoc=t.htmlDoc()}catch(t){console.error("Error loading or parsing XML:",t)}}handleTestXMLChange(){if(this.testXML)try{this.testDoc=l().parse(this.testXML).htmlDoc()}catch(t){console.error("Error parsing XML:",t)}}async connectedCallback(){super.connectedCallback(),this.initializeTemplateContent(),this.applyStyles(),this.testURL&&this.handleTestURLChange(),this.testXML&&this.handleTestXMLChange()}initializeTemplateContent(){let t=this.querySelector("template");this.templateContent=t?t.content:s``}applyStyles(){let t=new CSSStyleSheet;t.replaceSync(h),this.shadowRoot.adoptedStyleSheets=[t]}render(){return s`
2
+ ${this.templateContent}
3
+ <slot></slot>
4
+ ${c(this.testDoc,s`<span>Loading...</span>`)}
5
+ `}};r([p({type:String,attribute:"test-url"})],e.prototype,"testURL",2),r([a()],e.prototype,"testDoc",2),r([a()],e.prototype,"testXML",2),r([i("testURL",{waitUntilFirstUpdate:!0})],e.prototype,"handleTestURLChange",1),r([i("testXML",{waitUntilFirstUpdate:!0})],e.prototype,"handleTestXMLChange",1),e=r([n("test-container")],e);export{e as a};
@@ -0,0 +1,48 @@
1
+ import{a as l}from"./chunk-SBACDLL6.js";import{a as d,d as a,i as c}from"./chunk-J3NAMJRF.js";import{a as m}from"./chunk-TCHROQU3.js";import{b as i}from"./chunk-7WJYJA45.js";import{a as p}from"./chunk-LO2NM3CE.js";var r=class extends c{render(){let s=this.computedContext;if(!s||!s.variables)return a``;let b=s.variables.filter(o=>o.type==="response"),u=s.variables.filter(o=>o.type==="outcome"),n=(o,h)=>a`
2
+ <h3>${h}</h3>
3
+ <table>
4
+ <thead>
5
+ <tr>
6
+ <th>Identifier</th>
7
+ <th>Value</th>
8
+ <th>Cardinality</th>
9
+ <th>Base Type</th>
10
+ <th>Correct Response / Mappings</th>
11
+ </tr>
12
+ </thead>
13
+ <tbody>
14
+ ${o.map(e=>{let f=e.correctResponse?Array.isArray(e.correctResponse)?e.correctResponse.join(", "):e.correctResponse:"",x=e.mapping?.mapEntries?.map(t=>`${t.mapKey}=${t.mappedValue}pt`).join(", ")||"",y=e.areaMapping?.areaMapEntries?.map(t=>`${t.shape}(${t.coords})=${t.mappedValue}pt`).join(", ")||"";return a`
15
+ <tr>
16
+ <td>${e.identifier}</td>
17
+ <td>${Array.isArray(e.value)?e.value.join(", "):e.value}</td>
18
+ <td>${e.cardinality}</td>
19
+ <td>${e.baseType}</td>
20
+ <td>${f||x||y}</td>
21
+ </tr>
22
+ `})}
23
+ </tbody>
24
+ </table>
25
+ `;return a`
26
+ ${n(b,"Response Variables")} ${n(u,"Outcome Variables")}
27
+ `}};r.styles=d`
28
+ table {
29
+ width: 100%;
30
+ border-collapse: collapse;
31
+ margin: 20px 0;
32
+ font-size: 14px;
33
+ text-align: left;
34
+ }
35
+ th,
36
+ td {
37
+ border: 1px solid #ddd;
38
+ padding: 8px;
39
+ }
40
+ th {
41
+ background-color: #f4f4f4;
42
+ font-weight: bold;
43
+ }
44
+ h3 {
45
+ margin-top: 20px;
46
+ font-size: 16px;
47
+ }
48
+ `,p([i({context:m,subscribe:!0})],r.prototype,"computedContext",2),r=p([l("print-item-variables")],r);export{r as a};
@@ -0,0 +1 @@
1
+ import{a as e}from"./chunk-DD55IQIL.js";var t=class extends e{calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};export{t as a};
@@ -0,0 +1,5 @@
1
+ import{a as L}from"./chunk-AV6ISYP4.js";import{g as S}from"./chunk-Z7KIJX7V.js";import{a as V}from"./chunk-E6IOJ4MV.js";import{a as R,b as A}from"./chunk-CZDMOYYF.js";import{a as w,b as x}from"./chunk-QQR6POPY.js";import{a as I,b as C}from"./chunk-7WJYJA45.js";import{a as E,b as o}from"./chunk-42P7F3FC.js";import{a as N,d,i as p}from"./chunk-65CZNGQC.js";import{a as i}from"./chunk-JR322KXH.js";var M=(e=>(e.ITEM_NOT_FOUND="item-not-found",e.SECTION_NOT_FOUND="section-not-found",e.LOAD_ERROR="load-error",e.NETWORK_ERROR="network-error",e.TIMEOUT_ERROR="timeout-error",e))(M||{}),D=m=>{class c extends m{constructor(...t){super(...t);this.navigate=null;this.cacheTransform=!1;this.requestTimeout=3e4;this.showLoadingIndicators=!0;this._activeRequests=[];this._navigationInProgress=!1;this._lastError=null;this._lastNavigationRequestId=null;this._targetNavigation=null;this.addEventListener("qti-request-navigation",async({detail:e})=>{if(!e?.id)return;let s=`nav_${Date.now()}_${Math.random()}`;this._lastNavigationRequestId=s;try{if(this._navigationInProgress=!0,this._lastError=null,this._dispatchStatusEvent({loading:!0,type:e.type,id:e.id}),this._cancelActiveRequests(),this._targetNavigation={type:e.type,id:e.id},e.type==="item"?await this._navigateToItem(e.id):e.type==="section"&&await this._navigateToSection(e.id),this._lastNavigationRequestId!==s){console.log("Navigation was superseded by a newer request");return}}catch(u){if(this._lastNavigationRequestId===s){let a=this._normalizeError(u,e.type,e.id);this._lastError=a,this._dispatchErrorEvent(a),console.error(`Navigation error (${a.type}):`,a.message,a.details)}}finally{this._lastNavigationRequestId===s&&(this._navigationInProgress=!1,this._dispatchStatusEvent({loading:!1,type:e.type,id:e.id}))}}),this.addEventListener("qti-assessment-test-connected",e=>{this._testElement=e.detail,this._initializeNavigation()})}_initializeNavigation(){let t;this.navigate==="section"&&(t=this._testElement.querySelector("qti-assessment-section")?.identifier),this.navigate==="item"&&(t=this.sessionContext.navItemRefId??this._testElement.querySelector("qti-assessment-item-ref")?.identifier),t&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:this.navigate==="section"?"section":"item",id:t},bubbles:!0,composed:!0}))}navigateTo(t,e){e||(t==="section"&&(e=this._testElement?.querySelector("qti-assessment-section")?.identifier),t==="item"&&(e=this._testElement?.querySelector("qti-assessment-item-ref")?.identifier)),this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:t,id:e},bubbles:!0,composed:!0}))}async _navigateToItem(t){let e=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${t}"]`);if(!e)throw{type:"item-not-found",message:`Item with identifier "${t}" not found.`,itemId:t};let s=e.closest("qti-test-part")?.identifier,u=e.closest("qti-assessment-section")?.identifier;this.sessionContext={...this.sessionContext,navPartId:s,navSectionId:u,navItemRefId:t,navItemLoading:!0};try{await this._loadItems([t])}finally{this.sessionContext={...this.sessionContext,navItemLoading:!1}}}async _navigateToSection(t){let e=this._testElement?.querySelector(`qti-assessment-section[identifier="${t}"]`);if(!e)throw{type:"section-not-found",message:`Section with identifier "${t}" not found.`,sectionId:t};let s=e.closest("qti-test-part")?.identifier;this.sessionContext={...this.sessionContext,navPartId:s,navSectionId:t,navItemRefId:null,navItemLoading:!0};try{let u=this._getSectionItemIds(t);await this._loadItems(u)}finally{this.sessionContext={...this.sessionContext,navItemLoading:!1}}}_normalizeError(t,e,s){return t&&t.type&&Object.values(M).includes(t.type)?t:t instanceof DOMException&&t.name==="AbortError"?{type:"network-error",message:"Navigation was cancelled because a new navigation was requested.",details:t}:t.name==="TimeoutError"||t.message&&t.message.includes("timeout")?{type:"timeout-error",message:"Request timed out. Please check your network connection.",details:t}:t instanceof TypeError&&t.message.includes("network")?{type:"network-error",message:"A network error occurred. Please check your connection.",details:t}:{type:"load-error",message:`Failed to load ${e}: ${s}`,details:t,itemId:e==="item"?s:void 0,sectionId:e==="section"?s:void 0}}_dispatchErrorEvent(t){this.dispatchEvent(new CustomEvent("qti-navigation-error",{detail:t,bubbles:!0,composed:!0}))}_dispatchStatusEvent(t){this.showLoadingIndicators&&this.dispatchEvent(new CustomEvent("qti-navigation-status",{detail:t,bubbles:!0,composed:!0}))}_cancelActiveRequests(){this._activeRequests.length>0&&(console.info(`Cancelling ${this._activeRequests.length} pending requests`),this._activeRequests.forEach(t=>{t&&t.readyState!==4&&t.abort()}),this._activeRequests=[])}async _loadItems(t){if(!this._testElement||t.length===0)return;let e=t.map(a=>this._testElement.querySelector(`qti-assessment-item-ref[identifier="${a}"]`)),s=e.reduce((a,v,l)=>(v||a.push(t[l]),a),[]);if(s.length>0)throw{type:"item-not-found",message:`One or more items not found: ${s.join(", ")}`,details:{missingItems:s}};this._clearLoadedItems();let u=e.map(async a=>{if(!a)return null;let v=new Promise((l,b)=>{setTimeout(()=>{b({name:"TimeoutError",message:`Request for item ${a.identifier} timed out after ${this.requestTimeout}ms`})},this.requestTimeout)});try{let{promise:l,request:b}=V(this.cacheTransform).load(a.href);b instanceof XMLHttpRequest&&this._activeRequests.push(b);let B=await Promise.race([l,v]);return{itemRef:a,doc:B.htmlDoc(),request:b}}catch(l){if(l instanceof DOMException&&l.name==="AbortError"||l&&l.name==="TimeoutError")return console.log(`Request for item ${a.identifier} was ${l.name==="TimeoutError"?"timed out":"aborted"}`),null;throw l.itemId=a.identifier,l}});try{let v=(await Promise.all(u)).filter(l=>l!==null);if(v.forEach(({itemRef:l,doc:b})=>{l&&b&&(l.xmlDoc=b)}),this._activeRequests=[],requestAnimationFrame(()=>{this.dispatchEvent(new CustomEvent("qti-test-loaded",{detail:v.map(({itemRef:l})=>({identifier:l?.identifier,element:l})),bubbles:!0,composed:!0}))}),v.length===0&&t.length>0)throw{type:"load-error",message:"All item requests failed to load",details:{itemIds:t}};return v}catch(a){throw console.error("Error loading items:",a),a}}_getSectionItemIds(t){if(!this._testElement?.querySelector(`qti-assessment-section[identifier="${t}"]`))throw{type:"section-not-found",message:`Section with identifier "${t}" not found.`,sectionId:t};return Array.from(this._testElement.querySelectorAll(`qti-assessment-section[identifier="${t}"] > qti-assessment-item-ref`)).map(s=>s.identifier)}_clearLoadedItems(){let t=this._testElement?.querySelectorAll("qti-assessment-test qti-assessment-item-ref");Array.from(t||[]).forEach(e=>{e.xmlDoc=null})}retryNavigation(){if(this._lastError){let t=this._lastError.itemId?"item":"section",e=this._lastError.itemId||this._lastError.sectionId;e&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:t,id:e},bubbles:!0,composed:!0}))}else this._targetNavigation&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:this._targetNavigation,bubbles:!0,composed:!0}))}}return i([o({type:String})],c.prototype,"navigate",2),i([o({type:Boolean,attribute:"cache-transform"})],c.prototype,"cacheTransform",2),i([o({type:Number})],c.prototype,"requestTimeout",2),i([o({type:Boolean})],c.prototype,"showLoadingIndicators",2),c};var P=m=>{class c extends m{constructor(...n){super(...n),this.sessionContext={...this.sessionContext,view:"candidate"},this.addEventListener("on-test-switch-view",t=>{this.sessionContext={...this.sessionContext,view:t.detail},this._updateElementView()}),this.addEventListener("qti-assessment-test-connected",()=>{this._updateElementView()}),this.addEventListener("qti-assessment-item-connected",t=>{this._updateElementView(),this._setCorrectResponseVisibility(t.detail)})}willUpdate(n){super.willUpdate(n),n.has("sessionContext")&&this._updateElementView()}_updateElementView(){if(this._testElement){Array.from(this._testElement.querySelectorAll("[view]")).forEach(s=>{s.classList.toggle("show",s.getAttribute("view")===this.sessionContext.view)});let e=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this.sessionContext.navItemRefId}"]`)?.assessmentItem;e&&e.showCorrectResponse(this.sessionContext.view==="scorer")}}_setCorrectResponseVisibility(n){n.showCorrectResponse(this.sessionContext.view==="scorer")}}return c};var q=class extends p{constructor(){super();this.testContext=w;this.sessionContext=R;this._updateItemInTestContext=r=>{let n=r._context,t=n.identifier,e=n.variables,s=this.testContext.items.find(u=>u?.identifier===t);if(!s){console.warn(`Item IDs between assessment.xml and item.xml should match: ${t} is not found!`);return}s.variables?.length===1?this._updateItemVariablesInTestContext(t,e):r.variables=[...s.variables||[]]};this.addEventListener("qti-assessment-test-connected",r=>{if(this.testContext=w,this.sessionContext=R,this.testContext&&this.testContext.items.length>0)return;this._testElement=r.detail;let n=Array.from(this._testElement.querySelectorAll("qti-assessment-item-ref")).map(t=>({href:t.href,identifier:t.identifier,category:t.category,variables:[{identifier:"completionStatus",value:"not_attempted",type:"outcome"}]}));this.testContext={...this.testContext,items:n}}),this.addEventListener("qti-assessment-item-connected",r=>{let n=r.detail,t=n.closest("qti-assessment-item-ref")?.identifier;t&&(n.assessmentItemRefId=t),this._updateItemInTestContext(r.detail)}),this.addEventListener("qti-item-context-updated",r=>{this._updateItemVariablesInTestContext(r.detail.itemContext.identifier,r.detail.itemContext.variables)})}updateItemVariables(r,n){let t=this.testContext.items.find(s=>s.identifier===r);t&&(t.variables=t.variables.map(s=>{let u=n.find(a=>a.identifier===s.identifier);return u?{...s,...u}:s}));let e=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${r}"]`);e&&e.assessmentItem&&e.assessmentItem&&(e.assessmentItem.variables=n)}_updateItemVariablesInTestContext(r,n){this.testContext={...this.testContext,items:this.testContext.items.map(t=>t.identifier!==r?t:{...t,variables:n.map(e=>{let s=t.variables.find(u=>u.identifier===e.identifier);return s?{...s,...e}:e})})},this.dispatchEvent(new CustomEvent("qti-test-context-updated",{detail:this.testContext,bubbles:!1,composed:!1}))}};i([o({attribute:!1,type:Object}),I({context:x})],q.prototype,"testContext",2),i([o({attribute:!1,type:Object}),I({context:A})],q.prototype,"sessionContext",2);var $=m=>{class c extends m{constructor(...n){super(...n),this.addEventListener("qti-register-variable",t=>{this.testContext={...this.testContext,testOutcomeVariables:[...this.testContext.testOutcomeVariables||[],t.detail.variable]},t.stopPropagation()}),this.addEventListener("qti-set-outcome-value",t=>{let{outcomeIdentifier:e,value:s}=t.detail;this.updateOutcomeVariable(e,s),t.stopPropagation()})}outcomeProcessing(){let n=this.querySelector("qti-outcome-processing");return n?(n?.process(),!0):!1}updateOutcomeVariable(n,t){let e=this.getOutcome(n);if(!e){console.warn(`Can not set qti-outcome-identifier: ${n}, it is not available`);return}this.testContext={...this.testContext,testOutcomeVariables:this.testContext.testOutcomeVariables?.map(s=>s.identifier!==n?s:{...s,value:e.cardinality==="single"?t:[...s.value,t]})}}getOutcome(n){return this.getVariable(n)}getVariable(n){return this.testContext.testOutcomeVariables?.find(t=>t.identifier===n)||null}}return c};var T=class extends D(P($(q))){async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:this}))}render(){return d`<slot></slot>`}};T=i([E("qti-test")],T);var k={fromAttribute(m){return m==="true"},toAttribute(m){return m?"true":"false"}},f=class extends p{constructor(){super(...arguments);this.weigths=new Map}createRenderRoot(){return this}get assessmentItem(){return this.renderRoot?.querySelector("qti-assessment-item")}async connectedCallback(){super.connectedCallback();let r=this.getRootNode().host.closest("qti-test").querySelector("template[item-ref]");r&&(this.myTemplate=L(r)),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-item-ref-connected",{bubbles:!0,composed:!0,detail:{identifier:this.identifier,href:this.href,category:this.category}}))}render(){return this.myTemplate?this.myTemplate({xmlDoc:this.xmlDoc}):this.xmlDoc}};i([o({type:String})],f.prototype,"category",2),i([o({type:String})],f.prototype,"identifier",2),i([o({type:Boolean,converter:k})],f.prototype,"required",2),i([o({type:Boolean,converter:k})],f.prototype,"fixed",2),i([o({type:String})],f.prototype,"href",2),i([o({type:Object,attribute:!1})],f.prototype,"xmlDoc",2);customElements.get("qti-assessment-item-ref")||customElements.define("qti-assessment-item-ref",f);var O={fromAttribute(m){return m==="true"},toAttribute(m){return m?"true":"false"}},h=class extends p{constructor(){super(...arguments);this._title=""}get title(){return this._title}set title(r){this._title=r,this.removeAttribute("title"),this.setAttribute("data-title",r)}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-assessment-section-connected",{bubbles:!0,composed:!0}))}render(){return d`<slot name="qti-rubric-block"></slot><slot></slot>`}};i([o({type:String})],h.prototype,"identifier",2),i([o({type:String})],h.prototype,"required",2),i([o({type:Boolean,converter:O})],h.prototype,"fixed",2),i([o({type:Boolean,converter:O})],h.prototype,"visible",2),i([o({type:Boolean,converter:O,attribute:"keep-together"})],h.prototype,"keepTogether",2),i([C({context:x,subscribe:!0})],h.prototype,"_testContext",2);customElements.get("qti-assessment-section")||customElements.define("qti-assessment-section",h);var y=class extends p{constructor(){super(...arguments);this._title=""}get title(){return this._title}set title(r){this._title=r,this.removeAttribute("title"),this.setAttribute("data-title",r)}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-test-connected",{detail:this,bubbles:!0,composed:!0}))}render(){return d` <slot></slot>`}};i([o({type:String})],y.prototype,"identifier",2),i([o({type:String})],y.prototype,"title",1),i([C({context:x,subscribe:!0})],y.prototype,"_testContext",2),y=i([E("qti-assessment-test")],y);var g=class extends p{constructor(){super(...arguments);this.identifier="";this.class="";this.navigationMode="nonlinear";this.submissionMode="individual";this._title=""}get title(){return this._title}set title(r){this._title=r,this.removeAttribute("title"),this.setAttribute("data-title",r)}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-test-part-connected",{bubbles:!0,composed:!0}))}render(){return d` <slot></slot>`}};i([o({type:String})],g.prototype,"identifier",2),i([o({type:String})],g.prototype,"class",2),i([o({type:String,attribute:"navigation-mode"})],g.prototype,"navigationMode",2),i([o({type:String,attribute:"submission-mode"})],g.prototype,"submissionMode",2),g=i([E("qti-test-part")],g);customElements.get("qti-test-part")||customElements.define("qti-test-part",g);var _=class extends S{render(){return d``}};_.styles=N`
2
+ :host {
3
+ color: gray;
4
+ }
5
+ `,_=i([E("qti-test-feedback")],_);export{T as a,f as b,h as c,y as d,g as e,_ as f};
@@ -0,0 +1 @@
1
+ import{a as h}from"./chunk-TCHROQU3.js";import{a as c,c as m}from"./chunk-SBACDLL6.js";import{d as a,i as d}from"./chunk-J3NAMJRF.js";import{a as p}from"./chunk-7ME56ODO.js";import{a as r}from"./chunk-7WJYJA45.js";import{a as n}from"./chunk-LO2NM3CE.js";var o=class extends d{constructor(){super();this.configContext={};this._onItemContextChanged=this._handleItemContextChanged.bind(this);this._onAssessmentItemConnected=this._handleAssessmentItemConnected.bind(this);this._onHandleShowCorrectResponse=this._handleShowCorrectResponse.bind(this);this._onHandleShowCandidateCorrection=this._handleShowCandidateCorrection.bind(this);this._onHandleSwitchCorrectResponseMode=this._handleSwitchCorrectResponseMode.bind(this);this.addEventListener("qti-item-context-updated",this._onItemContextChanged),this.addEventListener("qti-assessment-item-connected",this._onAssessmentItemConnected),this.addEventListener("item-show-correct-response",this._onHandleShowCorrectResponse),this.addEventListener("item-show-candidate-correction",this._onHandleShowCandidateCorrection),this.addEventListener("item-switch-correct-response-mode",this._onHandleSwitchCorrectResponseMode)}_handleItemContextChanged(e){this._updateItemVariablesInTestContext(e.detail.itemContext.identifier,e.detail?.itemContext?.variables||[])}_handleAssessmentItemConnected(e){let t=e.detail._context.variables;this._qtiAssessmentItem=e.detail,this.computedContext=this.computedContext?.identifier===this._qtiAssessmentItem.identifier?{...this.computedContext,title:this._qtiAssessmentItem.title}:{identifier:this._qtiAssessmentItem.identifier,title:this._qtiAssessmentItem.title,adaptive:this._qtiAssessmentItem.getAttribute("adaptive")?.toLowerCase()==="true"||!1,variables:t,correctResponseMode:"internal"},this._updateItemVariablesInTestContext(this._qtiAssessmentItem.identifier,t||[])}_handleShowCorrectResponse(e){this._qtiAssessmentItem&&this._qtiAssessmentItem.showCorrectResponse(e.detail)}_handleShowCandidateCorrection(e){this._qtiAssessmentItem&&this._qtiAssessmentItem.showCandidateCorrection(e.detail)}_handleSwitchCorrectResponseMode(e){this._handleShowCorrectResponse(new CustomEvent("item-show-correct-response",{detail:!1,bubbles:!0})),this.configContext={...this.configContext,correctResponseMode:e.detail}}_updateItemVariablesInTestContext(e,t){let C=t?.find(i=>i.identifier=="SCORE")?.value,s=parseFloat(C?.toString()),l=t?.find(i=>i.identifier==="completionStatus")?.value,x=s!==void 0&&!isNaN(s)&&s>0,u=s!==void 0&&!isNaN(s)&&s<=0,f=l==="completed";this.computedContext={...this.computedContext,identifier:e,correct:x,incorrect:u,completed:f,variables:t}}render(){return a`<slot></slot>`}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-item-context-changed",this._onItemContextChanged),this.removeEventListener("qti-assessment-item-connected",this._onAssessmentItemConnected)}};n([m(),r({context:h})],o.prototype,"computedContext",2),n([m(),r({context:p})],o.prototype,"configContext",2),o=n([c("qti-item")],o);export{o as a};
@@ -0,0 +1 @@
1
+ import{a as f}from"./chunk-3YF52BZZ.js";import{a as b}from"./chunk-P6SSTAJ2.js";import{a as d,b as l}from"./chunk-SBACDLL6.js";import{d as s,g as c,i as u}from"./chunk-J3NAMJRF.js";import{b as p}from"./chunk-7WJYJA45.js";import{a as m}from"./chunk-LO2NM3CE.js";var r=class extends u{constructor(){super();this.view="";this.disabled=!1;this.myTemplate=null;this.addEventListener("click",e=>{let o=e.target,n=parseFloat(o.value);o.tagName==="INPUT"&&this._changeOutcomeScore(n)})}createRenderRoot(){return this}connectedCallback(){super.connectedCallback();let e=this.querySelector("template");if(!e){this.myTemplate=null;return}this.myTemplate=f(e)}_changeOutcomeScore(e){let i=(this.computedContext?.testParts.find(t=>t.active)).sections.flatMap(t=>t.items).find(t=>t.active)?.identifier;this.dispatchEvent(new CustomEvent("test-update-outcome-variable",{detail:{assessmentItemRefId:i,outcomeVariableId:"SCORE",value:e},bubbles:!0}))}render(){let e=this.computedContext?.testParts.flatMap(a=>a.sections.flatMap(h=>h.items)).find(a=>a.active);if(!e||!e.variables)return s``;let o=e.variables.find(a=>a.identifier=="MAXSCORE")?.value,n=e.variables.find(a=>a.identifier=="SCORE"),i=n?.value,t=n?.externalScored!=="human";if(!o||!n)return c;let v=[...Array(Number(o)+1).keys()];return s`${this.myTemplate?this.myTemplate({scores:v,score:i,disabled:t}):c}`}};m([l({type:String,attribute:"view"})],r.prototype,"view",2),m([l({type:Boolean})],r.prototype,"disabled",2),m([p({context:b,subscribe:!0})],r.prototype,"computedContext",2),r=m([d("test-scoring-buttons")],r);export{r as a};
@@ -0,0 +1,8 @@
1
+ import{b as d,c as l}from"./chunk-PMYTST5N.js";import{a,b as s}from"./chunk-SBACDLL6.js";import{a as o,d as n,i as p}from"./chunk-J3NAMJRF.js";import{a as c}from"./chunk-TCHROQU3.js";import{b as r}from"./chunk-7WJYJA45.js";import{a as e}from"./chunk-LO2NM3CE.js";var t=class extends p{constructor(){super(...arguments);this.shown=!1;this.disabled=!1;this.showCorrectText="Show correct response";this.hideCorrectText="Hide correct response";this.noCorrectResponseText="No correct response specified";this._hasCorrectResponse=!1;this._previousActiveItem=""}updated(){if(!this._hasCorrectResponse||this._previousActiveItem!==this.computedContext?.identifier){this._previousActiveItem=this.computedContext?.identifier;let m=!!this.computedContext?.variables.some(i=>i.correctResponse),h=!!this.computedContext?.variables.some(i=>i.mapping?.mapEntries?.length>0||i.areaMapping?.areaMapEntries?.length>0);this._hasCorrectResponse=m||h}this.disabled=!this._hasCorrectResponse}_toggleState(){this.disabled||this.dispatchEvent(new CustomEvent("item-show-correct-response",{detail:!this.shown,bubbles:!0}))}_getDisplayedText(){return this.disabled?this.noCorrectResponseText:this.shown?this.hideCorrectText:this.showCorrectText}render(){return n` <div @click="${this._toggleState}">${this._getDisplayedText()}</div> `}};t.styles=o`
2
+ :host {
3
+ ${d};
4
+ }
5
+ :host([disabled]) {
6
+ ${l};
7
+ }
8
+ `,e([r({context:c,subscribe:!0})],t.prototype,"computedContext",2),e([s({type:Boolean,reflect:!0})],t.prototype,"shown",2),e([s({type:Boolean,reflect:!0})],t.prototype,"disabled",2),e([s({type:String})],t.prototype,"showCorrectText",2),e([s({type:String})],t.prototype,"hideCorrectText",2),e([s({type:String})],t.prototype,"noCorrectResponseText",2),t=e([a("item-show-correct-response")],t);export{t as a};
@@ -0,0 +1,5 @@
1
+ import{a as L}from"./chunk-AV6ISYP4.js";import{a as R,b as A}from"./chunk-CZDMOYYF.js";import{a as w,b as x}from"./chunk-QQR6POPY.js";import{g as S}from"./chunk-XLFLYMNJ.js";import{a as V}from"./chunk-E6IOJ4MV.js";import{a as I,b as C}from"./chunk-7WJYJA45.js";import{a as E,b as o}from"./chunk-42P7F3FC.js";import{a as N,d,i as p}from"./chunk-65CZNGQC.js";import{a as i}from"./chunk-JR322KXH.js";var M=(e=>(e.ITEM_NOT_FOUND="item-not-found",e.SECTION_NOT_FOUND="section-not-found",e.LOAD_ERROR="load-error",e.NETWORK_ERROR="network-error",e.TIMEOUT_ERROR="timeout-error",e))(M||{}),D=m=>{class c extends m{constructor(...t){super(...t);this.navigate=null;this.cacheTransform=!1;this.requestTimeout=3e4;this.showLoadingIndicators=!0;this._activeRequests=[];this._navigationInProgress=!1;this._lastError=null;this._lastNavigationRequestId=null;this._targetNavigation=null;this.addEventListener("qti-request-navigation",async({detail:e})=>{if(!e?.id)return;let s=`nav_${Date.now()}_${Math.random()}`;this._lastNavigationRequestId=s;try{if(this._navigationInProgress=!0,this._lastError=null,this._dispatchStatusEvent({loading:!0,type:e.type,id:e.id}),this._cancelActiveRequests(),this._targetNavigation={type:e.type,id:e.id},e.type==="item"?await this._navigateToItem(e.id):e.type==="section"&&await this._navigateToSection(e.id),this._lastNavigationRequestId!==s){console.log("Navigation was superseded by a newer request");return}}catch(u){if(this._lastNavigationRequestId===s){let a=this._normalizeError(u,e.type,e.id);this._lastError=a,this._dispatchErrorEvent(a),console.error(`Navigation error (${a.type}):`,a.message,a.details)}}finally{this._lastNavigationRequestId===s&&(this._navigationInProgress=!1,this._dispatchStatusEvent({loading:!1,type:e.type,id:e.id}))}}),this.addEventListener("qti-assessment-test-connected",e=>{this._testElement=e.detail,this._initializeNavigation()})}_initializeNavigation(){let t;this.navigate==="section"&&(t=this._testElement.querySelector("qti-assessment-section")?.identifier),this.navigate==="item"&&(t=this.sessionContext.navItemRefId??this._testElement.querySelector("qti-assessment-item-ref")?.identifier),t&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:this.navigate==="section"?"section":"item",id:t},bubbles:!0,composed:!0}))}navigateTo(t,e){e||(t==="section"&&(e=this._testElement?.querySelector("qti-assessment-section")?.identifier),t==="item"&&(e=this._testElement?.querySelector("qti-assessment-item-ref")?.identifier)),this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:t,id:e},bubbles:!0,composed:!0}))}async _navigateToItem(t){let e=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${t}"]`);if(!e)throw{type:"item-not-found",message:`Item with identifier "${t}" not found.`,itemId:t};let s=e.closest("qti-test-part")?.identifier,u=e.closest("qti-assessment-section")?.identifier;this.sessionContext={...this.sessionContext,navPartId:s,navSectionId:u,navItemRefId:t,navItemLoading:!0};try{await this._loadItems([t])}finally{this.sessionContext={...this.sessionContext,navItemLoading:!1}}}async _navigateToSection(t){let e=this._testElement?.querySelector(`qti-assessment-section[identifier="${t}"]`);if(!e)throw{type:"section-not-found",message:`Section with identifier "${t}" not found.`,sectionId:t};let s=e.closest("qti-test-part")?.identifier;this.sessionContext={...this.sessionContext,navPartId:s,navSectionId:t,navItemRefId:null,navItemLoading:!0};try{let u=this._getSectionItemIds(t);await this._loadItems(u)}finally{this.sessionContext={...this.sessionContext,navItemLoading:!1}}}_normalizeError(t,e,s){return t&&t.type&&Object.values(M).includes(t.type)?t:t instanceof DOMException&&t.name==="AbortError"?{type:"network-error",message:"Navigation was cancelled because a new navigation was requested.",details:t}:t.name==="TimeoutError"||t.message&&t.message.includes("timeout")?{type:"timeout-error",message:"Request timed out. Please check your network connection.",details:t}:t instanceof TypeError&&t.message.includes("network")?{type:"network-error",message:"A network error occurred. Please check your connection.",details:t}:{type:"load-error",message:`Failed to load ${e}: ${s}`,details:t,itemId:e==="item"?s:void 0,sectionId:e==="section"?s:void 0}}_dispatchErrorEvent(t){this.dispatchEvent(new CustomEvent("qti-navigation-error",{detail:t,bubbles:!0,composed:!0}))}_dispatchStatusEvent(t){this.showLoadingIndicators&&this.dispatchEvent(new CustomEvent("qti-navigation-status",{detail:t,bubbles:!0,composed:!0}))}_cancelActiveRequests(){this._activeRequests.length>0&&(console.info(`Cancelling ${this._activeRequests.length} pending requests`),this._activeRequests.forEach(t=>{t&&t.readyState!==4&&t.abort()}),this._activeRequests=[])}async _loadItems(t){if(!this._testElement||t.length===0)return;let e=t.map(a=>this._testElement.querySelector(`qti-assessment-item-ref[identifier="${a}"]`)),s=e.reduce((a,v,l)=>(v||a.push(t[l]),a),[]);if(s.length>0)throw{type:"item-not-found",message:`One or more items not found: ${s.join(", ")}`,details:{missingItems:s}};this._clearLoadedItems();let u=e.map(async a=>{if(!a)return null;let v=new Promise((l,b)=>{setTimeout(()=>{b({name:"TimeoutError",message:`Request for item ${a.identifier} timed out after ${this.requestTimeout}ms`})},this.requestTimeout)});try{let{promise:l,request:b}=V(this.cacheTransform).load(a.href);b instanceof XMLHttpRequest&&this._activeRequests.push(b);let B=await Promise.race([l,v]);return{itemRef:a,doc:B.htmlDoc(),request:b}}catch(l){if(l instanceof DOMException&&l.name==="AbortError"||l&&l.name==="TimeoutError")return console.log(`Request for item ${a.identifier} was ${l.name==="TimeoutError"?"timed out":"aborted"}`),null;throw l.itemId=a.identifier,l}});try{let v=(await Promise.all(u)).filter(l=>l!==null);if(v.forEach(({itemRef:l,doc:b})=>{l&&b&&(l.xmlDoc=b)}),this._activeRequests=[],requestAnimationFrame(()=>{this.dispatchEvent(new CustomEvent("qti-test-loaded",{detail:v.map(({itemRef:l})=>({identifier:l?.identifier,element:l})),bubbles:!0,composed:!0}))}),v.length===0&&t.length>0)throw{type:"load-error",message:"All item requests failed to load",details:{itemIds:t}};return v}catch(a){throw console.error("Error loading items:",a),a}}_getSectionItemIds(t){if(!this._testElement?.querySelector(`qti-assessment-section[identifier="${t}"]`))throw{type:"section-not-found",message:`Section with identifier "${t}" not found.`,sectionId:t};return Array.from(this._testElement.querySelectorAll(`qti-assessment-section[identifier="${t}"] > qti-assessment-item-ref`)).map(s=>s.identifier)}_clearLoadedItems(){let t=this._testElement?.querySelectorAll("qti-assessment-test qti-assessment-item-ref");Array.from(t||[]).forEach(e=>{e.xmlDoc=null})}retryNavigation(){if(this._lastError){let t=this._lastError.itemId?"item":"section",e=this._lastError.itemId||this._lastError.sectionId;e&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:t,id:e},bubbles:!0,composed:!0}))}else this._targetNavigation&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:this._targetNavigation,bubbles:!0,composed:!0}))}}return i([o({type:String})],c.prototype,"navigate",2),i([o({type:Boolean,attribute:"cache-transform"})],c.prototype,"cacheTransform",2),i([o({type:Number})],c.prototype,"requestTimeout",2),i([o({type:Boolean})],c.prototype,"showLoadingIndicators",2),c};var P=m=>{class c extends m{constructor(...n){super(...n),this.sessionContext={...this.sessionContext,view:"candidate"},this.addEventListener("on-test-switch-view",t=>{this.sessionContext={...this.sessionContext,view:t.detail},this._updateElementView()}),this.addEventListener("qti-assessment-test-connected",()=>{this._updateElementView()}),this.addEventListener("qti-assessment-item-connected",t=>{this._updateElementView(),this._setCorrectResponseVisibility(t.detail)})}willUpdate(n){super.willUpdate(n),n.has("sessionContext")&&this._updateElementView()}_updateElementView(){if(this._testElement){Array.from(this._testElement.querySelectorAll("[view]")).forEach(s=>{s.classList.toggle("show",s.getAttribute("view")===this.sessionContext.view)});let e=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this.sessionContext.navItemRefId}"]`)?.assessmentItem;e&&e.showCorrectResponse(this.sessionContext.view==="scorer")}}_setCorrectResponseVisibility(n){n.showCorrectResponse(this.sessionContext.view==="scorer")}}return c};var q=class extends p{constructor(){super();this.testContext=w;this.sessionContext=R;this._updateItemInTestContext=r=>{let n=r._context,t=n.identifier,e=n.variables,s=this.testContext.items.find(u=>u?.identifier===t);if(!s){console.warn(`Item IDs between assessment.xml and item.xml should match: ${t} is not found!`);return}s.variables?.length===1?this._updateItemVariablesInTestContext(t,e):r.variables=[...s.variables||[]]};this.addEventListener("qti-assessment-test-connected",r=>{if(this.testContext=w,this.sessionContext=R,this.testContext&&this.testContext.items.length>0)return;this._testElement=r.detail;let n=Array.from(this._testElement.querySelectorAll("qti-assessment-item-ref")).map(t=>({href:t.href,identifier:t.identifier,category:t.category,variables:[{identifier:"completionStatus",value:"not_attempted",type:"outcome"}]}));this.testContext={...this.testContext,items:n}}),this.addEventListener("qti-assessment-item-connected",r=>{let n=r.detail,t=n.closest("qti-assessment-item-ref")?.identifier;t&&(n.assessmentItemRefId=t),this._updateItemInTestContext(r.detail)}),this.addEventListener("qti-item-context-updated",r=>{this._updateItemVariablesInTestContext(r.detail.itemContext.identifier,r.detail.itemContext.variables)})}updateItemVariables(r,n){let t=this.testContext.items.find(s=>s.identifier===r);t&&(t.variables=t.variables.map(s=>{let u=n.find(a=>a.identifier===s.identifier);return u?{...s,...u}:s}));let e=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${r}"]`);e&&e.assessmentItem&&e.assessmentItem&&(e.assessmentItem.variables=n)}_updateItemVariablesInTestContext(r,n){this.testContext={...this.testContext,items:this.testContext.items.map(t=>t.identifier!==r?t:{...t,variables:n.map(e=>{let s=t.variables.find(u=>u.identifier===e.identifier);return s?{...s,...e}:e})})},this.dispatchEvent(new CustomEvent("qti-test-context-updated",{detail:this.testContext,bubbles:!1,composed:!1}))}};i([o({attribute:!1,type:Object}),I({context:x})],q.prototype,"testContext",2),i([o({attribute:!1,type:Object}),I({context:A})],q.prototype,"sessionContext",2);var $=m=>{class c extends m{constructor(...n){super(...n),this.addEventListener("qti-register-variable",t=>{this.testContext={...this.testContext,testOutcomeVariables:[...this.testContext.testOutcomeVariables||[],t.detail.variable]},t.stopPropagation()}),this.addEventListener("qti-set-outcome-value",t=>{let{outcomeIdentifier:e,value:s}=t.detail;this.updateOutcomeVariable(e,s),t.stopPropagation()})}outcomeProcessing(){let n=this.querySelector("qti-outcome-processing");return n?(n?.process(),!0):!1}updateOutcomeVariable(n,t){let e=this.getOutcome(n);if(!e){console.warn(`Can not set qti-outcome-identifier: ${n}, it is not available`);return}this.testContext={...this.testContext,testOutcomeVariables:this.testContext.testOutcomeVariables?.map(s=>s.identifier!==n?s:{...s,value:e.cardinality==="single"?t:[...s.value,t]})}}getOutcome(n){return this.getVariable(n)}getVariable(n){return this.testContext.testOutcomeVariables?.find(t=>t.identifier===n)||null}}return c};var T=class extends D(P($(q))){async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:this}))}render(){return d`<slot></slot>`}};T=i([E("qti-test")],T);var k={fromAttribute(m){return m==="true"},toAttribute(m){return m?"true":"false"}},f=class extends p{constructor(){super(...arguments);this.weigths=new Map}createRenderRoot(){return this}get assessmentItem(){return this.renderRoot?.querySelector("qti-assessment-item")}async connectedCallback(){super.connectedCallback();let r=this.getRootNode().host.closest("qti-test").querySelector("template[item-ref]");r&&(this.myTemplate=L(r)),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-item-ref-connected",{bubbles:!0,composed:!0,detail:{identifier:this.identifier,href:this.href,category:this.category}}))}render(){return this.myTemplate?this.myTemplate({xmlDoc:this.xmlDoc}):this.xmlDoc}};i([o({type:String})],f.prototype,"category",2),i([o({type:String})],f.prototype,"identifier",2),i([o({type:Boolean,converter:k})],f.prototype,"required",2),i([o({type:Boolean,converter:k})],f.prototype,"fixed",2),i([o({type:String})],f.prototype,"href",2),i([o({type:Object,attribute:!1})],f.prototype,"xmlDoc",2);customElements.get("qti-assessment-item-ref")||customElements.define("qti-assessment-item-ref",f);var O={fromAttribute(m){return m==="true"},toAttribute(m){return m?"true":"false"}},h=class extends p{constructor(){super(...arguments);this._title=""}get title(){return this._title}set title(r){this._title=r,this.removeAttribute("title"),this.setAttribute("data-title",r)}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-assessment-section-connected",{bubbles:!0,composed:!0}))}render(){return d`<slot name="qti-rubric-block"></slot><slot></slot>`}};i([o({type:String})],h.prototype,"identifier",2),i([o({type:String})],h.prototype,"required",2),i([o({type:Boolean,converter:O})],h.prototype,"fixed",2),i([o({type:Boolean,converter:O})],h.prototype,"visible",2),i([o({type:Boolean,converter:O,attribute:"keep-together"})],h.prototype,"keepTogether",2),i([C({context:x,subscribe:!0})],h.prototype,"_testContext",2);customElements.get("qti-assessment-section")||customElements.define("qti-assessment-section",h);var y=class extends p{constructor(){super(...arguments);this._title=""}get title(){return this._title}set title(r){this._title=r,this.removeAttribute("title"),this.setAttribute("data-title",r)}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-test-connected",{detail:this,bubbles:!0,composed:!0}))}render(){return d` <slot></slot>`}};i([o({type:String})],y.prototype,"identifier",2),i([o({type:String})],y.prototype,"title",1),i([C({context:x,subscribe:!0})],y.prototype,"_testContext",2),y=i([E("qti-assessment-test")],y);var g=class extends p{constructor(){super(...arguments);this.identifier="";this.class="";this.navigationMode="nonlinear";this.submissionMode="individual";this._title=""}get title(){return this._title}set title(r){this._title=r,this.removeAttribute("title"),this.setAttribute("data-title",r)}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-test-part-connected",{bubbles:!0,composed:!0}))}render(){return d` <slot></slot>`}};i([o({type:String})],g.prototype,"identifier",2),i([o({type:String})],g.prototype,"class",2),i([o({type:String,attribute:"navigation-mode"})],g.prototype,"navigationMode",2),i([o({type:String,attribute:"submission-mode"})],g.prototype,"submissionMode",2),g=i([E("qti-test-part")],g);customElements.get("qti-test-part")||customElements.define("qti-test-part",g);var _=class extends S{render(){return d``}};_.styles=N`
2
+ :host {
3
+ color: gray;
4
+ }
5
+ `,_=i([E("qti-test-feedback")],_);export{T as a,f as b,h as c,y as d,g as e,_ as f};
@@ -0,0 +1,6 @@
1
+ import{a as u}from"./chunk-QQCGUVEV.js";import{a as d}from"./chunk-XJ2CFTZP.js";import{b as l}from"./chunk-7WJYJA45.js";import{c as s}from"./chunk-42P7F3FC.js";import{a as o,d as p,i as c}from"./chunk-65CZNGQC.js";import{a as n}from"./chunk-JR322KXH.js";var a=class extends c{constructor(){super(...arguments);this.getVariables=()=>Array.from(this.children).map(t=>{switch(t.tagName.toLowerCase()){case"qti-base-value":return{baseType:t.getAttribute("base-type"),value:t.textContent.trim(),cardinality:"single"};case"qti-variable":{let i=t.getAttribute("identifier")||"";return i==="QTI_CONTEXT"?this.qtiContext?.QTI_CONTEXT?{identifier:"QTI_CONTEXT",baseType:"record",value:this.qtiContext.QTI_CONTEXT,cardinality:"record",type:"context"}:(console.warn("QTI_CONTEXT not available"),{identifier:"QTI_CONTEXT",baseType:"record",value:this.qtiContext.QTI_CONTEXT,cardinality:"record",type:"context"}):this.context.variables.find(r=>r.identifier===i)||null}case"qti-multiple":{let e=t.getResult();return e.length>0?{identifier:"",baseType:e[0].baseType,value:e.map(r=>r.value),cardinality:"multiple",type:"response"}:null}case"qti-ordered":{let e=t.getResult();return e.length>0?{identifier:"",baseType:e[0].baseType,value:e.map(r=>r.value),cardinality:"ordered",type:"response"}:null}case"qti-correct":{let i=t.getAttribute("identifier")||"",e=this.context.variables.find(r=>r.identifier===i)||null;return{baseType:e.baseType,value:e.correctResponse,cardinality:e.cardinality}}default:{try{return{baseType:"integer",value:t.getResult()?.toString()||null,cardinality:"single"}}catch{console.warn("default not sufficient")}return null}}}).filter(t=>t!==null)}render(){return p`<pre>${JSON.stringify(this.result,null,2)}</pre>
2
+ <slot></slot>`}calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};a.styles=o`
3
+ slot {
4
+ display: none;
5
+ }
6
+ `,n([s()],a.prototype,"result",2),n([l({context:u,subscribe:!0}),s()],a.prototype,"context",2),n([l({context:d,subscribe:!0}),s()],a.prototype,"qtiContext",2);export{a};
@@ -0,0 +1 @@
1
+ import{a as A}from"./chunk-XJ2CFTZP.js";import{b as T}from"./chunk-CZDMOYYF.js";import{b as g}from"./chunk-QQR6POPY.js";import{a as R}from"./chunk-P6SSTAJ2.js";import{a as _}from"./chunk-7ME56ODO.js";import{a as h,b as v}from"./chunk-7WJYJA45.js";import{a as S,b as q,c as f}from"./chunk-42P7F3FC.js";import{d as b,i as y}from"./chunk-65CZNGQC.js";import{a as d}from"./chunk-JR322KXH.js";var c=class extends y{constructor(){super();this.identifier=void 0;this.initContext=[];this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}};this.configContext={};this.autoScoreItems=!1;this.addEventListener("qti-assessment-test-connected",this._handleTestConnected.bind(this)),this.addEventListener("qti-assessment-item-connected",this._handleItemConnected.bind(this)),this.addEventListener("qti-interaction-changed",this._handleInteractionChanged.bind(this)),this.addEventListener("test-end-attempt",this._handleTestEndAttempt.bind(this)),this.addEventListener("test-show-correct-response",this._handleTestShowCorrectResponse.bind(this)),this.addEventListener("test-show-candidate-correction",this._handleTestShowCandidateCorrection.bind(this)),this.addEventListener("test-update-outcome-variable",this._handleTestUpdateOutcomeVariable.bind(this))}_handleTestEndAttempt(o){let i=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this._sessionContext.navItemRefId}"]`).assessmentItem,t=this.configContext?.reportValidityAfterScoring===!0;i.processResponse(!0,t)}_handleTestShowCorrectResponse(o){this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this._sessionContext.navItemRefId}"]`).assessmentItem.showCorrectResponse(o.detail)}_handleTestShowCandidateCorrection(o){this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this._sessionContext.navItemRefId}"]`).assessmentItem.showCandidateCorrection(o.detail)}_handleTestUpdateOutcomeVariable(o){this._testElement.querySelector(`qti-assessment-item-ref[identifier="${o.detail.assessmentItemRefId}"]`).assessmentItem.setOutcomeVariable(o.detail.outcomeVariableId,o.detail.value)}_handleInteractionChanged(o){if(this.autoScoreItems){let e=o.composedPath()[0].closest("qti-assessment-item"),i=e.variables.find(t=>t.identifier==="SCORE");if(i&&i.externalScored===null&&e.adaptive==="false"){let t=this.configContext?.reportValidityAfterScoring===!0;e.processResponse(!0,t)}}}render(){return b`<slot></slot>`}_handleTestConnected(o){if(this._testElement=o.detail,!this.qtiContext.QTI_CONTEXT?.testIdentifier){let t=this.qtiContext.QTI_CONTEXT||{testIdentifier:"",candidateIdentifier:"not set",environmentIdentifier:"default"};this.qtiContext={QTI_CONTEXT:{...t,testIdentifier:this._testElement.identifier,environmentIdentifier:t.environmentIdentifier||"default"}}}this._testElement.querySelectorAll('qti-context-declaration[identifier="QTI_CONTEXT"]').forEach(t=>{let s=this._extractDefaultValues(t);Object.keys(s).length>0&&(this.qtiContext={QTI_CONTEXT:{...s,...this.qtiContext.QTI_CONTEXT}})});let i=Array.from(this._testElement?.querySelectorAll("qti-test-part")||[]);this.computedContext={identifier:this._testElement.identifier,title:this._testElement.title,view:this._sessionContext?.view,testParts:i.map(t=>{let s=[...t.querySelectorAll("qti-assessment-section")];return{active:!1,identifier:t.identifier,navigationMode:t.navigationMode,submissionMode:t.submissionMode,sections:s.map(r=>{let m=[...r.querySelectorAll("qti-assessment-item-ref")];return{active:!1,identifier:r.identifier,title:r.title,items:m.map(n=>({...this.initContext?.find(l=>l.identifier===n.identifier),active:!1,identifier:n.identifier,categories:n.category?n.category?.split(" "):[],href:n.href,variables:[]}))}})}})}}_extractDefaultValues(o){let e={},i=o.querySelector("qti-default-value");return i&&i.querySelectorAll("qti-value[field-identifier]").forEach(s=>{let r=s.getAttribute("field-identifier"),m=s.getAttribute("base-type")||"string",n=s.textContent?.trim()||"";if(r){let l=n;switch(m){case"integer":l=parseInt(n,10);break;case"float":l=parseFloat(n);break;case"boolean":l=n.toLowerCase()==="true";break;case"string":default:l=n;break}e[r]=l}}),e}_handleItemConnected(o){let e=o.detail;this.computedContext={...this.computedContext,testParts:this.computedContext.testParts.map(i=>({...i,sections:i.sections.map(t=>({...t,items:t.items.map(s=>{if(s.identifier!==e.parentElement.getAttribute("identifier"))return s;let m=e.querySelector("qti-outcome-declaration[identifier='SCORE']")?.getAttribute("externalScored"),n=e.querySelectorAll("qti-response-declaration"),l=Array.from(n).some(p=>p.querySelector("qti-correct-response")),C=Array.from(n).some(p=>{let I=p.querySelector("qti-mapping"),u=p.querySelector("qti-area-mapping");return I?.querySelector("qti-map-entry")||u?.querySelector("qti-area-map-entry")}),x=l||C,E=!!e.querySelector("qti-response-processing");return{...s,assessmentItemIdentifier:e.getAttribute("identifier"),label:e.getAttribute("label"),title:e.title,externalScored:m,adaptive:e.adaptive=="true"||!1,timeDependent:e.timeDependent=="true"||!1,variables:e.variables,hasCorrectResponse:x,hasResponseProcessing:E}})}))}))}}willUpdate(o){if(!this.computedContext)return;let e=1;this.computedContext={...this.computedContext,view:this._sessionContext?.view,testParts:this.computedContext.testParts.map(i=>({...i,active:this._sessionContext?.navPartId===i.identifier||!1,sections:i.sections.map(t=>({...t,active:this._sessionContext?.navSectionId===t.identifier||!1,completed:t.items.every(s=>this._testContext.items.find(r=>r.identifier===s.identifier)?.variables.find(r=>r.identifier==="completionStatus").value==="completed"),items:t.items.map(s=>{let r=this._testContext?.items.find(a=>a.identifier===s.identifier),m={...s,...r,...this.initContext?.find(a=>a.identifier===s.identifier)},n=m.variables?.find(a=>a.identifier=="SCORE")?.value,l=n==null?null:parseFloat(n?.toString()),C=m.variables?.find(a=>a.identifier==="completionStatus")?.value,x=m.variables?.find(a=>a.identifier==="RESPONSE")?.value||"",E=m.variables?.find(a=>a.identifier==="numAttempts")?.value||0,p=this._sessionContext?.navItemRefId===m.identifier||!1,I=s.categories.includes(this.configContext?.infoItemCategory)?null:e++,u=s.variables?.find(a=>a.identifier=="MAXSCORE")?.value,Q=u==null?null:parseFloat(u?.toString());return{...m,completionStatus:C,numAttempts:E,score:l,response:x,index:I,active:p,maxScore:Q}})}))}))},this.dispatchEvent(new CustomEvent("qti-computed-context-updated",{detail:this.computedContext,bubbles:!0}))}};d([q({type:String})],c.prototype,"identifier",2),d([f()],c.prototype,"initContext",2),d([f(),h({context:A})],c.prototype,"qtiContext",2),d([f(),h({context:_})],c.prototype,"configContext",2),d([f(),v({context:g,subscribe:!0})],c.prototype,"_testContext",2),d([f(),v({context:T,subscribe:!0})],c.prototype,"_sessionContext",2),d([f(),h({context:R})],c.prototype,"computedContext",2),d([q({type:Boolean,attribute:"auto-score-items"})],c.prototype,"autoScoreItems",2),c=d([S("test-navigation")],c);export{c as a};
@@ -0,0 +1 @@
1
+ import{a as e}from"./chunk-YOTJAW26.js";var t=class extends e{calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};export{t as a};
@@ -0,0 +1 @@
1
+ import{b as g}from"./chunk-CZDMOYYF.js";import{b as _}from"./chunk-QQR6POPY.js";import{a as R}from"./chunk-P6SSTAJ2.js";import{a as A}from"./chunk-7ME56ODO.js";import{a as E,b as I}from"./chunk-7WJYJA45.js";import{a as y,b as q,c as p}from"./chunk-42P7F3FC.js";import{d as S,i as b}from"./chunk-65CZNGQC.js";import{a as m}from"./chunk-JR322KXH.js";var a=class extends b{constructor(){super();this.identifier=void 0;this.initContext=[];this.configContext={};this.autoScoreItems=!1;this.addEventListener("qti-assessment-test-connected",this._handleTestConnected.bind(this)),this.addEventListener("qti-assessment-item-connected",this._handleItemConnected.bind(this)),this.addEventListener("qti-interaction-changed",this._handleInteractionChanged.bind(this)),this.addEventListener("test-end-attempt",this._handleTestEndAttempt.bind(this)),this.addEventListener("test-show-correct-response",this._handleTestShowCorrectResponse.bind(this)),this.addEventListener("test-show-candidate-correction",this._handleTestShowCandidateCorrection.bind(this)),this.addEventListener("test-update-outcome-variable",this._handleTestUpdateOutcomeVariable.bind(this))}_handleTestEndAttempt(s){let t=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this._sessionContext.navItemRefId}"]`).assessmentItem,i=this.configContext?.reportValidityAfterScoring===!0;t.processResponse(!0,i)}_handleTestShowCorrectResponse(s){this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this._sessionContext.navItemRefId}"]`).assessmentItem.showCorrectResponse(s.detail)}_handleTestShowCandidateCorrection(s){this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this._sessionContext.navItemRefId}"]`).assessmentItem.showCandidateCorrection(s.detail)}_handleTestUpdateOutcomeVariable(s){this._testElement.querySelector(`qti-assessment-item-ref[identifier="${s.detail.assessmentItemRefId}"]`).assessmentItem.setOutcomeVariable(s.detail.outcomeVariableId,s.detail.value)}_handleInteractionChanged(s){if(this.autoScoreItems){let e=s.composedPath()[0].closest("qti-assessment-item"),t=e.variables.find(i=>i.identifier==="SCORE");if(t&&t.externalScored===null&&e.adaptive==="false"){let i=this.configContext?.reportValidityAfterScoring===!0;e.processResponse(!0,i)}}}render(){return S`<slot></slot>`}_handleTestConnected(s){this._testElement=s.detail;let e=Array.from(this._testElement?.querySelectorAll("qti-test-part")||[]);this.computedContext={identifier:this._testElement.identifier,title:this._testElement.title,view:this._sessionContext?.view,testParts:e.map(t=>{let i=[...t.querySelectorAll("qti-assessment-section")];return{active:!1,identifier:t.identifier,navigationMode:t.navigationMode,submissionMode:t.submissionMode,sections:i.map(n=>{let c=[...n.querySelectorAll("qti-assessment-item-ref")];return{active:!1,identifier:n.identifier,title:n.title,items:c.map(o=>({...this.initContext?.find(d=>d.identifier===o.identifier),active:!1,identifier:o.identifier,categories:o.category?o.category?.split(" "):[],href:o.href,variables:[]}))}})}})}}_handleItemConnected(s){let e=s.detail;this.computedContext={...this.computedContext,testParts:this.computedContext.testParts.map(t=>({...t,sections:t.sections.map(i=>({...i,items:i.items.map(n=>{if(n.identifier!==e.parentElement.getAttribute("identifier"))return n;let o=e.querySelector("qti-outcome-declaration[identifier='SCORE']")?.getAttribute("externalScored"),d=e.querySelectorAll("qti-response-declaration"),f=Array.from(d).some(l=>l.querySelector("qti-correct-response")),h=Array.from(d).some(l=>{let v=l.querySelector("qti-mapping"),u=l.querySelector("qti-area-mapping");return v?.querySelector("qti-map-entry")||u?.querySelector("qti-area-map-entry")}),C=f||h,x=!!e.querySelector("qti-response-processing");return{...n,assessmentItemIdentifier:e.getAttribute("identifier"),label:e.getAttribute("label"),title:e.title,externalScored:o,adaptive:e.adaptive=="true"||!1,timeDependent:e.timeDependent=="true"||!1,variables:e.variables,hasCorrectResponse:C,hasResponseProcessing:x}})}))}))}}willUpdate(s){if(!this.computedContext)return;let e=1;this.computedContext={...this.computedContext,view:this._sessionContext?.view,testParts:this.computedContext.testParts.map(t=>({...t,active:this._sessionContext?.navPartId===t.identifier||!1,sections:t.sections.map(i=>({...i,active:this._sessionContext?.navSectionId===i.identifier||!1,completed:i.items.every(n=>this._testContext.items.find(c=>c.identifier===n.identifier)?.variables.find(c=>c.identifier==="completionStatus").value==="completed"),items:i.items.map(n=>{let c=this._testContext?.items.find(r=>r.identifier===n.identifier),o={...n,...c,...this.initContext?.find(r=>r.identifier===n.identifier)},d=o.variables?.find(r=>r.identifier=="SCORE")?.value,f=d==null?null:parseFloat(d?.toString()),h=o.variables?.find(r=>r.identifier==="completionStatus")?.value,C=o.variables?.find(r=>r.identifier==="RESPONSE")?.value||"",x=o.variables?.find(r=>r.identifier==="numAttempts")?.value||0,l=this._sessionContext?.navItemRefId===o.identifier||!1,v=n.categories.includes(this.configContext?.infoItemCategory)?null:e++,u=n.variables?.find(r=>r.identifier=="MAXSCORE")?.value,w=u==null?null:parseFloat(u?.toString());return{...o,completionStatus:h,numAttempts:x,score:f,response:C,index:v,active:l,maxScore:w}})}))}))},this.dispatchEvent(new CustomEvent("qti-computed-context-updated",{detail:this.computedContext,bubbles:!0}))}};m([q({type:String})],a.prototype,"identifier",2),m([p()],a.prototype,"initContext",2),m([p(),E({context:A})],a.prototype,"configContext",2),m([p(),I({context:_,subscribe:!0})],a.prototype,"_testContext",2),m([p(),I({context:g,subscribe:!0})],a.prototype,"_sessionContext",2),m([p(),E({context:R})],a.prototype,"computedContext",2),m([q({type:Boolean,attribute:"auto-score-items"})],a.prototype,"autoScoreItems",2),a=m([y("test-navigation")],a);export{a};
@@ -0,0 +1,23 @@
1
+ var v=String.raw,k=v`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2
+ <xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
3
+ <xsl:template match="@*|node()">
4
+ <xsl:copy>
5
+ <xsl:apply-templates select="@*|node()"/>
6
+ </xsl:copy>
7
+ </xsl:template>
8
+
9
+ <!-- remove existing namespaces -->
10
+ <xsl:template match="*">
11
+ <!-- remove element prefix -->
12
+ <xsl:element name="{local-name()}">
13
+ <!-- process attributes -->
14
+ <xsl:for-each select="@*">
15
+ <!-- remove attribute prefix -->
16
+ <xsl:attribute name="{local-name()}">
17
+ <xsl:value-of select="."/>
18
+ </xsl:attribute>
19
+ </xsl:for-each>
20
+ <xsl:apply-templates/>
21
+ </xsl:element>
22
+ </xsl:template>
23
+ </xsl:stylesheet>`;function I(s,t,e){s.querySelectorAll(t).forEach(n=>{let r=`${t}-${e}`,o=C(n,r);n.replaceWith(o)})}function w(s,t){s.querySelectorAll("*").forEach(e=>{let n=e.classList;n&&n.forEach(r=>{if(r.startsWith(`${t}:`)){let o=r.slice(`${t}:`.length),l=`${e.nodeName}-${o}`,m=C(e,l);e.replaceWith(m)}})})}function C(s,t){let e=document.createElement(t);for(let n of s.attributes)e.setAttribute(n.name,n.value);for(;s.firstChild;)e.appendChild(s.firstChild);return e}function D(s){let t=[];return s.querySelectorAll("qti-assessment-item-ref").forEach(e=>{let n=e.getAttribute("identifier"),r=e.getAttribute("href"),o=e.getAttribute("category");t.push({identifier:n,href:r,category:o})}),t}function S(s){let t=new XMLHttpRequest;return{promise:new Promise((n,r)=>{t.open("GET",s,!0),t.responseType="document",t.onload=()=>{t.status>=200&&t.status<300?n(t.responseXML):r(t.statusText)},t.onerror=()=>{r(t.statusText)},t.send()}),xhr:t}}function M(s){return new DOMParser().parseFromString(s,"text/xml")}function T(s){let t=new XSLTProcessor,e=new DOMParser().parseFromString(k,"text/xml");return t.importStylesheet(e),t.transformToFragment(s,document)}function L(s,t){t.endsWith("/")||(t+="/"),s.querySelectorAll("[src],[href],[primary-path]").forEach(e=>{let n="";e.getAttribute("src")&&(n="src"),e.getAttribute("href")&&(n="href"),e.getAttribute("primary-path")&&(n="primary-path");let r=e.getAttribute(n)?.trim();if(!/^(data:|https?:|blob:)/.test(r)){let o=t+encodeURI(r);e.setAttribute(n,o)}})}function E(s){s.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(e=>{let n=document.createComment(e.textContent);e.replaceChild(n,e.firstChild)})}function X(s){s.querySelectorAll("qti-stylesheet").forEach(t=>t.remove())}function P(s){switch(s){case"qti-choice-interaction":case"qti-order-interaction":return"qti-simple-choice";case"qti-inline-choice-interaction":return"qti-inline-choice";case"qti-match-interaction":return["qti-simple-match-set:first-of-type qti-simple-associable-choice","qti-simple-match-set:last-of-type > qti-simple-associable-choice"];case"qti-gap-match-interaction":return"qti-gap-text";case"qti-associate-interaction":return"qti-simple-associable-choice";default:}}var z=(s=!1)=>{let t,e="",n={load(r){e=r;let o=encodeURI(r);if(s&&sessionStorage.getItem(o))return{promise:Promise.resolve(n.parse(sessionStorage.getItem(o))),request:null};let{promise:l,xhr:m}=S(r);return{promise:new Promise(y=>{l.then(a=>(t=a,n.shuffleInteractions(),s&&sessionStorage.setItem(o,new XMLSerializer().serializeToString(t)),y(n)))}),request:m}},parse(r){return t=M(r),n},path:r=>(L(t,r),e=null,n),fn(r){return r(t),n},pciHooks(r){let o=["hook","module"],l=r.substring(0,r.lastIndexOf("/"));for(let m of o)t.querySelectorAll("["+m+"]").forEach(y=>{let a=y.getAttribute(m);!a.startsWith("data:")&&!a.startsWith("http")&&(y.setAttribute("base-url",r),y.setAttribute("module",l+"/"+encodeURI(a+(a.endsWith(".js")?"":".js"))))});return n},async configurePci(r,o,l="qti-portable-custom-interaction"){let m=[],q=t.querySelectorAll(l),y=await o(r,"/modules/module_resolution.js"),a=await o(r,"/modules/fallback_module_resolution.js");if(q.length>0)for(let A of Array.from(q)){A.setAttribute("data-base-url",r);let c=A.getAttribute("custom-interaction-type-identifier");c&&m.includes(c)&&(c=c+m.length,A.setAttribute("custom-interaction-type-identifier",c),m.push(c)),c&&m.push(c);let h=A.querySelector("qti-interaction-modules");if(h&&h.getAttribute("primary-configuration")){let x=h.getAttribute("primary-configuration");if(x)try{let u=await o(r,`/${x}`),b=Array.from(h.querySelectorAll("qti-interaction-module"));for(let i of b){let f=i.getAttribute("id");if(f&&u.paths&&u.paths[f]){let g=u.paths[f],d=Array.isArray(g)?g[0]:g;if(i.setAttribute("primary-path",d),a&&a.paths&&a.paths[f]){let p=a.paths[f];Array.isArray(p)?i.setAttribute("fallback-path",p[0]):i.setAttribute("fallback-path",p)}}}if(u.paths){for(let i in u.paths)if(!h.querySelector(`qti-interaction-module[id="${i}"]`)){let g=t.createElement("qti-interaction-module");g.setAttribute("id",i);let d=Array.isArray(u.paths[i])?u.paths[i][0]:u.paths[i];if(g.setAttribute("primary-path",d),a&&a.paths&&a.paths[i]){let p=a.paths[i];Array.isArray(p)?g.setAttribute("fallback-path",p[0]):g.setAttribute("fallback-path",p)}h.appendChild(g)}}u.urlArgs&&h.setAttribute("url-args",u.urlArgs)}catch(u){console.warn(`Failed to load primary configuration: ${x}`,u)}}else if(y){A.querySelector("qti-interaction-modules")===null?(h=t.createElement("qti-interaction-modules"),A.appendChild(h)):h=A.querySelector("qti-interaction-modules");for(let x in y.paths){let u=y.paths[x],b="";a&&a.paths&&a.paths[x]&&(b=a.paths[x]);let i=Array.isArray(u)?u:[u],f=Array.isArray(b)?b:[b],g=i.map((d,p)=>{let F=f.length>p?f[p]:"";return{primaryPath:d,fallbackPath:F}});for(let d of f)g.some(p=>p.fallbackPath===d)||g.push({primaryPath:i.length>0?i[0]:d,fallbackPath:d});for(let d of g){let p=t.createElement("qti-interaction-module");d.fallbackPath&&p.setAttribute("fallback-path",d.fallbackPath),p.setAttribute("id",x),p.setAttribute("primary-path",d.primaryPath),h&&h.appendChild(p)}}}}return n},shuffleInteractions(){let r=t.querySelectorAll('[shuffle="true"]'),o=Array.from(r).filter(l=>l.tagName?.toLowerCase().endsWith("-interaction"));for(let l of o){let m=P(l.tagName.toLowerCase()),q=Array.isArray(m)?m:[m];for(let y of q){let a=Array.from(l.querySelectorAll(y)),A=a.map((i,f)=>({element:i,fixed:i.hasAttribute("fixed")&&i.getAttribute("fixed")==="true",originalOrder:f})).filter(i=>i.fixed),c=a.filter(i=>!i.hasAttribute("fixed")||i.getAttribute("fixed")!=="true");if(c.length<=1)return console.warn("Shuffling is not possible with fewer than 2 non-fixed elements."),n;let h=[...c],x=!1,u=0;for(;!x&&u<20;){u++;for(let i=c.length-1;i>0;i--){let f=Math.floor(Math.random()*(i+1));[c[i],c[f]]=[c[f],c[i]]}x=!c.every((i,f)=>i===h[f])}if(!x)return console.warn("Failed to shuffle the choices after multiple attempts."),null;l.removeAttribute("shuffle");let b=0;for(let i of c)i.parentElement.insertBefore(i,A[b]?.element),b++;for(let i of A)i.element.parentElement.insertBefore(i.element,c[i.originalOrder])}}return n},extendElementName:(r,o)=>(I(t,r,o),n),extendElementsWithClass:(r="extend")=>(w(t,r),n),customInteraction(r,o){let l=t.querySelector("qti-custom-interaction"),m=l.querySelector("object");return l.setAttribute("data-base-ref",r),l.setAttribute("data-base-item",r+o),l.setAttribute("data",m.getAttribute("data")),l.setAttribute("width",m.getAttribute("width")),l.setAttribute("height",m.getAttribute("height")),l.removeChild(m),n},convertCDATAtoComment(){return E(t),n},stripStyleSheets(){return X(t),n},html(){return e!==null&&L(t,e.substring(0,e.lastIndexOf("/"))),new XMLSerializer().serializeToString(T(t))},xml(){return new XMLSerializer().serializeToString(t)},htmlDoc(){return e!==null&&L(t,e.substring(0,e.lastIndexOf("/"))),T(t)},xmlDoc(){return t}};return n};var W=()=>{let s,t={async load(e){return new Promise(n=>{S(e).promise.then(r=>(s=r,n(t)))})},parse(e){s=M(e)},assessmentTest(){let e=s.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:e.getAttribute("href"),identifier:e.getAttribute("identifier")}}};return t};var U=()=>{let s,t={async load(e){return new Promise((n,r)=>{S(e).promise.then(o=>(s=o,t.path(e.substring(0,e.lastIndexOf("/"))),n(t)))})},parse(e){return s=M(e),t},path:e=>(L(s,e),t),fn(e){return e(s),t},items(){return D(s)},html(){return new XMLSerializer().serializeToString(T(s))},xml(){return new XMLSerializer().serializeToString(s)},htmlDoc(){return T(s)},xmlDoc(){return s}};return t};export{z as a,W as b,U as c};