@citolab/qti-components 7.2.1 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (643) hide show
  1. package/cdn/chunks/chunk-2EE5IVNF.js +1 -0
  2. package/cdn/chunks/chunk-2PEB7XOI.js +1 -0
  3. package/cdn/chunks/chunk-2S62LLS5.js +2 -0
  4. package/cdn/chunks/chunk-2YSPUZLT.js +2 -0
  5. package/cdn/chunks/chunk-33KVDPBT.js +5 -0
  6. package/cdn/chunks/chunk-3HVTDMTS.js +1 -0
  7. package/cdn/chunks/chunk-3YJ5LGHO.js +1 -0
  8. package/cdn/chunks/chunk-4HD4LAOA.js +2 -0
  9. package/cdn/chunks/chunk-4PXGOA73.js +1 -0
  10. package/cdn/chunks/chunk-4TNE5ZQS.js +5 -0
  11. package/cdn/chunks/chunk-4U6VOTDY.js +2 -0
  12. package/cdn/chunks/chunk-57ZBXU3V.js +5 -0
  13. package/cdn/chunks/chunk-5B5ZBB3H.js +2 -0
  14. package/cdn/chunks/chunk-5RGC3O3Z.js +3 -0
  15. package/cdn/chunks/chunk-5WJBI6M7.js +1033 -0
  16. package/cdn/chunks/chunk-66BMMESW.js +2 -0
  17. package/cdn/chunks/chunk-6D53FU3U.js +2 -0
  18. package/cdn/chunks/chunk-6KJL4I6M.js +1 -0
  19. package/cdn/chunks/chunk-72GJGEI2.js +2 -0
  20. package/cdn/chunks/chunk-73GTDWYG.js +2 -0
  21. package/cdn/chunks/chunk-7ASLC5ZB.js +1 -0
  22. package/cdn/chunks/chunk-7G2JKRYL.js +3 -0
  23. package/cdn/chunks/chunk-7HDBTHS7.js +2 -0
  24. package/cdn/chunks/chunk-7OAHC7YP.js +1 -0
  25. package/cdn/chunks/chunk-7P7BX6D6.js +1 -0
  26. package/cdn/chunks/chunk-7U6V7TMQ.js +1 -0
  27. package/cdn/chunks/chunk-AH2FX4HG.js +1 -0
  28. package/cdn/chunks/chunk-ALDED3YL.js +1 -0
  29. package/cdn/chunks/chunk-AOQNGPU3.js +1 -0
  30. package/cdn/chunks/chunk-ARYTJGGM.js +8 -0
  31. package/cdn/chunks/chunk-BH7YS4N7.js +5 -0
  32. package/cdn/chunks/chunk-BS7S3RPY.js +1 -0
  33. package/cdn/chunks/chunk-BSL7QSJS.js +1 -0
  34. package/cdn/chunks/chunk-C2RWTG52.js +1 -0
  35. package/cdn/chunks/chunk-DAKW2UJX.js +3 -0
  36. package/cdn/chunks/chunk-DKMPPZUE.js +2 -0
  37. package/cdn/chunks/chunk-DNPPZXZF.js +1 -0
  38. package/cdn/chunks/chunk-DPW6VAG2.js +3441 -0
  39. package/cdn/chunks/chunk-DQCUGHMI.js +2 -0
  40. package/cdn/chunks/chunk-DTD5NE7V.js +2 -0
  41. package/cdn/chunks/chunk-EJE3C3VD.js +5 -0
  42. package/cdn/chunks/chunk-EJQGI6MR.js +1 -0
  43. package/cdn/chunks/chunk-EKAFL2KP.js +1 -0
  44. package/cdn/chunks/chunk-F63HVNEI.js +1 -0
  45. package/cdn/chunks/chunk-FGT2KVW2.js +1 -0
  46. package/cdn/chunks/chunk-FKNSURIA.js +2 -0
  47. package/cdn/chunks/chunk-FNCQNHCU.js +1 -0
  48. package/cdn/chunks/chunk-FXG6JQNB.js +3 -0
  49. package/cdn/chunks/chunk-G3O7FTGW.js +2 -0
  50. package/cdn/chunks/chunk-GSDSRYPT.js +5 -0
  51. package/cdn/chunks/chunk-GTDTMMHF.js +2 -0
  52. package/cdn/chunks/chunk-GW7MTJY4.js +2 -0
  53. package/cdn/chunks/chunk-GYF5ZDB3.js +1 -0
  54. package/cdn/chunks/chunk-H6ZOKOLE.js +1 -0
  55. package/cdn/chunks/chunk-HCAWI7AZ.js +1 -0
  56. package/cdn/chunks/chunk-HNZFDARC.js +2 -0
  57. package/cdn/chunks/chunk-I25TBSYM.js +8 -0
  58. package/cdn/chunks/chunk-I37HIF37.js +2 -0
  59. package/cdn/chunks/chunk-IAXDPXPS.js +2 -0
  60. package/cdn/chunks/chunk-IFSRAUBH.js +1 -0
  61. package/cdn/chunks/chunk-IJ47QETV.js +2 -0
  62. package/cdn/chunks/chunk-JATFFFTP.js +1 -0
  63. package/cdn/chunks/chunk-JFCDOKX7.js +2 -0
  64. package/cdn/chunks/chunk-JSCH2J4L.js +2 -0
  65. package/cdn/chunks/chunk-JVY3MIVH.js +5 -0
  66. package/cdn/chunks/chunk-JXGYDOJM.js +3 -0
  67. package/cdn/chunks/chunk-K3HDRUZ2.js +2 -0
  68. package/cdn/chunks/chunk-KGNJ44AT.js +2 -0
  69. package/cdn/chunks/chunk-KM6BQLUW.js +2 -0
  70. package/cdn/chunks/chunk-KMPDXXNC.js +5 -0
  71. package/cdn/chunks/chunk-KPFC2HQR.js +3 -0
  72. package/cdn/chunks/chunk-KZQ2VXMQ.js +2 -0
  73. package/cdn/chunks/chunk-LEC3TBJ3.js +2 -0
  74. package/cdn/chunks/chunk-LZMZV6TD.js +2 -0
  75. package/cdn/chunks/chunk-ME2BEQTK.js +3463 -0
  76. package/cdn/chunks/chunk-MM3TTGOD.js +5 -0
  77. package/cdn/chunks/chunk-MR6ZHDES.js +1 -0
  78. package/cdn/chunks/chunk-N6A5NZLH.js +1 -0
  79. package/cdn/chunks/chunk-NBXY7TMD.js +2 -0
  80. package/cdn/chunks/chunk-NCNOPEEF.js +2 -0
  81. package/cdn/chunks/chunk-NNGQPZRR.js +2 -0
  82. package/cdn/chunks/chunk-NTHP3CIK.js +1 -0
  83. package/cdn/chunks/chunk-NUS4RU5N.js +1 -0
  84. package/cdn/chunks/chunk-O7JELRBY.js +2 -0
  85. package/cdn/chunks/chunk-OCQAZUB6.js +2 -0
  86. package/cdn/chunks/chunk-OJTWWSZH.js +1 -0
  87. package/cdn/chunks/chunk-P6SSTAJ2.js +1 -0
  88. package/cdn/chunks/chunk-PACSO5NR.js +1 -0
  89. package/cdn/chunks/chunk-Q4UYMUWQ.js +1 -0
  90. package/cdn/chunks/chunk-QBBWQ5J6.js +5 -0
  91. package/cdn/chunks/chunk-QNNLXEUP.js +1 -0
  92. package/cdn/chunks/chunk-QPP7ZB2K.js +5 -0
  93. package/cdn/chunks/chunk-R345NUSS.js +2 -0
  94. package/cdn/chunks/chunk-RATUNBN5.js +1 -0
  95. package/cdn/chunks/chunk-RAXTSUAP.js +1 -0
  96. package/cdn/chunks/chunk-RSOX5VS5.js +3 -0
  97. package/cdn/chunks/chunk-SGUBIUUK.js +1 -0
  98. package/cdn/chunks/chunk-SHXTMXYU.js +1 -0
  99. package/cdn/chunks/chunk-SKCRMPN3.js +8 -0
  100. package/cdn/chunks/chunk-SNRRONMC.js +2 -0
  101. package/cdn/chunks/chunk-SUDAVHNM.js +1 -0
  102. package/cdn/chunks/chunk-SXYEFBGL.js +2 -0
  103. package/cdn/chunks/chunk-TDDS7QJB.js +48 -0
  104. package/cdn/chunks/chunk-TDKNW4KB.js +1 -0
  105. package/cdn/chunks/chunk-TTH5243V.js +1 -0
  106. package/cdn/chunks/chunk-U4D7JJMM.js +1 -0
  107. package/cdn/chunks/chunk-UGQPBOTB.js +17 -0
  108. package/cdn/chunks/chunk-UO3YPQWX.js +1 -0
  109. package/cdn/chunks/chunk-UOYDBSKF.js +1 -0
  110. package/cdn/chunks/chunk-UUKFU4BI.js +2 -0
  111. package/cdn/chunks/chunk-V65TZQVT.js +2 -0
  112. package/cdn/chunks/chunk-VIW7IGYG.js +2 -0
  113. package/cdn/chunks/chunk-W3L3NJQM.js +1 -0
  114. package/cdn/chunks/chunk-W7LBE76A.js +5 -0
  115. package/cdn/chunks/chunk-WANQ7VHH.js +2 -0
  116. package/cdn/chunks/chunk-WI3S4WLU.js +2 -0
  117. package/cdn/chunks/chunk-WQK3JD6Q.js +5 -0
  118. package/cdn/chunks/chunk-WRAMSS3Q.js +3465 -0
  119. package/cdn/chunks/chunk-XDXLBDGD.js +2 -0
  120. package/cdn/chunks/chunk-XLVU3CES.js +1 -0
  121. package/cdn/chunks/chunk-XLY6GBBJ.js +2 -0
  122. package/cdn/chunks/chunk-XNII2G63.js +3468 -0
  123. package/cdn/chunks/chunk-YL5IGHSU.js +1 -0
  124. package/cdn/chunks/chunk-YSCJG7CX.js +3461 -0
  125. package/cdn/chunks/chunk-ZNLWZYAX.js +5 -0
  126. package/cdn/chunks/chunk-ZWUH2GAI.js +1 -0
  127. package/cdn/exports/computed.context.js +1 -1
  128. package/cdn/index.js +1 -1
  129. package/cdn/qti-item/components/item-container.js +1 -1
  130. package/cdn/qti-item/core/index.js +1 -1
  131. package/cdn/qti-test/components/index.js +1 -1
  132. package/cdn/qti-test/components/test-container.js +1 -1
  133. package/cdn/qti-test/components/test-navigation.js +1 -1
  134. package/cdn/qti-test/components/test-next.js +1 -1
  135. package/cdn/qti-test/components/test-paging-buttons-stamp.js +1 -1
  136. package/cdn/qti-test/components/test-prev.js +1 -1
  137. package/cdn/qti-test/components/test-print-context.js +1 -1
  138. package/cdn/qti-test/components/test-print-item-variables.js +1 -1
  139. package/cdn/qti-test/components/test-scoring-buttons.js +1 -1
  140. package/cdn/qti-test/components/test-scoring-feedback.js +1 -1
  141. package/cdn/qti-test/components/test-scoring-toggle.js +1 -0
  142. package/cdn/qti-test/components/test-section-buttons-stamp.js +1 -1
  143. package/cdn/qti-test/components/test-show-correct-response.js +1 -1
  144. package/cdn/qti-test/components/test-stamp.js +1 -1
  145. package/cdn/qti-test/components/test-view-toggle copy.js +1 -0
  146. package/cdn/qti-test/components/test-view-toggle.js +1 -1
  147. package/cdn/qti-test/core/index.js +1 -1
  148. package/dist/chunks/chunk-22IRJWWY.js +10 -0
  149. package/dist/chunks/chunk-22IRJWWY.js.map +1 -0
  150. package/dist/chunks/chunk-254VCWDJ.js +249 -0
  151. package/dist/chunks/chunk-254VCWDJ.js.map +1 -0
  152. package/dist/chunks/chunk-25AXOL6N.js +73 -0
  153. package/dist/chunks/chunk-25AXOL6N.js.map +1 -0
  154. package/dist/chunks/chunk-2SJOPI6B.js +45 -0
  155. package/dist/chunks/chunk-2SJOPI6B.js.map +1 -0
  156. package/dist/chunks/chunk-2WZXGGU3.js +85 -0
  157. package/dist/chunks/chunk-2WZXGGU3.js.map +1 -0
  158. package/dist/chunks/chunk-34ZMZ5GH.js +76 -0
  159. package/dist/chunks/chunk-34ZMZ5GH.js.map +1 -0
  160. package/dist/chunks/chunk-36G5MQKR.js +85 -0
  161. package/dist/chunks/chunk-36G5MQKR.js.map +1 -0
  162. package/dist/chunks/chunk-3L7UTYZ5.js +92 -0
  163. package/dist/chunks/chunk-3L7UTYZ5.js.map +1 -0
  164. package/dist/chunks/chunk-3N546FXF.js +81 -0
  165. package/dist/chunks/chunk-3N546FXF.js.map +1 -0
  166. package/dist/chunks/chunk-3QOIGEC7.js +92 -0
  167. package/dist/chunks/chunk-3QOIGEC7.js.map +1 -0
  168. package/dist/chunks/chunk-3UAT3IXP.js +85 -0
  169. package/dist/chunks/chunk-3UAT3IXP.js.map +1 -0
  170. package/dist/chunks/chunk-3UPSFFDF.js +45 -0
  171. package/dist/chunks/chunk-3UPSFFDF.js.map +1 -0
  172. package/dist/chunks/chunk-4KYSAVEL.js +85 -0
  173. package/dist/chunks/chunk-4KYSAVEL.js.map +1 -0
  174. package/dist/chunks/chunk-4NZYGJLT.js +94 -0
  175. package/dist/chunks/chunk-4NZYGJLT.js.map +1 -0
  176. package/dist/chunks/chunk-4OGJBG35.js +8 -0
  177. package/dist/chunks/chunk-4OGJBG35.js.map +1 -0
  178. package/dist/chunks/chunk-4UEAQMY4.js +28 -0
  179. package/dist/chunks/chunk-4UEAQMY4.js.map +1 -0
  180. package/dist/chunks/chunk-4UIDYSZL.js +78 -0
  181. package/dist/chunks/chunk-4UIDYSZL.js.map +1 -0
  182. package/dist/chunks/chunk-4V7ZPUTP.js +78 -0
  183. package/dist/chunks/chunk-4V7ZPUTP.js.map +1 -0
  184. package/dist/chunks/chunk-5F52D6LQ.js +64 -0
  185. package/dist/chunks/chunk-5F52D6LQ.js.map +1 -0
  186. package/dist/chunks/chunk-5FEXUWZH.js +28 -0
  187. package/dist/chunks/chunk-5FEXUWZH.js.map +1 -0
  188. package/dist/chunks/chunk-5IQUODBV.js +94 -0
  189. package/dist/chunks/chunk-5IQUODBV.js.map +1 -0
  190. package/dist/chunks/chunk-6B7USFAR.js +82 -0
  191. package/dist/chunks/chunk-6B7USFAR.js.map +1 -0
  192. package/dist/chunks/chunk-6ELX5242.js +234 -0
  193. package/dist/chunks/chunk-6ELX5242.js.map +1 -0
  194. package/dist/chunks/chunk-6FJB3RNO.js +65 -0
  195. package/dist/chunks/chunk-6FJB3RNO.js.map +1 -0
  196. package/dist/chunks/chunk-6HSX33RT.js +239 -0
  197. package/dist/chunks/chunk-6HSX33RT.js.map +1 -0
  198. package/dist/chunks/chunk-6IC436D3.js +95 -0
  199. package/dist/chunks/chunk-6IC436D3.js.map +1 -0
  200. package/dist/chunks/chunk-6KHKAHVS.js +235 -0
  201. package/dist/chunks/chunk-6KHKAHVS.js.map +1 -0
  202. package/dist/chunks/chunk-6MXANZQB.js +80 -0
  203. package/dist/chunks/chunk-6MXANZQB.js.map +1 -0
  204. package/dist/chunks/chunk-6UZG2X74.js +870 -0
  205. package/dist/chunks/chunk-6UZG2X74.js.map +1 -0
  206. package/dist/chunks/chunk-6XLSPSL3.js +94 -0
  207. package/dist/chunks/chunk-6XLSPSL3.js.map +1 -0
  208. package/dist/chunks/chunk-6YAR3VHX.js +56 -0
  209. package/dist/chunks/chunk-6YAR3VHX.js.map +1 -0
  210. package/dist/chunks/chunk-7SGVY6AL.js +85 -0
  211. package/dist/chunks/chunk-7SGVY6AL.js.map +1 -0
  212. package/dist/chunks/chunk-7ZME7TLK.js +81 -0
  213. package/dist/chunks/chunk-7ZME7TLK.js.map +1 -0
  214. package/dist/chunks/chunk-AXVMZW54.js +73 -0
  215. package/dist/chunks/chunk-AXVMZW54.js.map +1 -0
  216. package/dist/chunks/chunk-AZIKAG7K.js +8 -0
  217. package/dist/chunks/chunk-AZIKAG7K.js.map +1 -0
  218. package/dist/chunks/chunk-B2J3M334.js +92 -0
  219. package/dist/chunks/chunk-B2J3M334.js.map +1 -0
  220. package/dist/chunks/chunk-B5Y4EZF6.js +80 -0
  221. package/dist/chunks/chunk-B5Y4EZF6.js.map +1 -0
  222. package/dist/chunks/chunk-B7NLQTW7.js +69 -0
  223. package/dist/chunks/chunk-B7NLQTW7.js.map +1 -0
  224. package/dist/chunks/chunk-BAEQ4MHU.js +69 -0
  225. package/dist/chunks/chunk-BAEQ4MHU.js.map +1 -0
  226. package/dist/chunks/chunk-BEFR3ACM.js +241 -0
  227. package/dist/chunks/chunk-BEFR3ACM.js.map +1 -0
  228. package/dist/chunks/chunk-BSDFAZ5E.js +43 -0
  229. package/dist/chunks/chunk-BSDFAZ5E.js.map +1 -0
  230. package/dist/chunks/chunk-BTNZ5BZC.js +99 -0
  231. package/dist/chunks/chunk-BTNZ5BZC.js.map +1 -0
  232. package/dist/chunks/chunk-C2KEHCRU.js +80 -0
  233. package/dist/chunks/chunk-C2KEHCRU.js.map +1 -0
  234. package/dist/chunks/chunk-CL26AHAV.js +65 -0
  235. package/dist/chunks/chunk-CL26AHAV.js.map +1 -0
  236. package/dist/chunks/chunk-CL6HNHNL.js +72 -0
  237. package/dist/chunks/chunk-CL6HNHNL.js.map +1 -0
  238. package/dist/chunks/chunk-CLLDFOBO.js +64 -0
  239. package/dist/chunks/chunk-CLLDFOBO.js.map +1 -0
  240. package/dist/chunks/chunk-CO4K3UIU.js +81 -0
  241. package/dist/chunks/chunk-CO4K3UIU.js.map +1 -0
  242. package/dist/chunks/chunk-CRFBT36M.js +85 -0
  243. package/dist/chunks/chunk-CRFBT36M.js.map +1 -0
  244. package/dist/chunks/chunk-CRI6TK2F.js +81 -0
  245. package/dist/chunks/chunk-CRI6TK2F.js.map +1 -0
  246. package/dist/chunks/chunk-CS3XEHIS.js +64 -0
  247. package/dist/chunks/chunk-CS3XEHIS.js.map +1 -0
  248. package/dist/chunks/chunk-D47JA24G.js +85 -0
  249. package/dist/chunks/chunk-D47JA24G.js.map +1 -0
  250. package/dist/chunks/chunk-DH2EP5PV.js +81 -0
  251. package/dist/chunks/chunk-DH2EP5PV.js.map +1 -0
  252. package/dist/chunks/chunk-DIEBUNEE.js +83 -0
  253. package/dist/chunks/chunk-DIEBUNEE.js.map +1 -0
  254. package/dist/chunks/chunk-DIETZXSR.js +78 -0
  255. package/dist/chunks/chunk-DIETZXSR.js.map +1 -0
  256. package/dist/chunks/chunk-DLBPLBZU.js +85 -0
  257. package/dist/chunks/chunk-DLBPLBZU.js.map +1 -0
  258. package/dist/chunks/chunk-DNBDU6ZU.js +45 -0
  259. package/dist/chunks/chunk-DNBDU6ZU.js.map +1 -0
  260. package/dist/chunks/chunk-DNLC7HVK.js +870 -0
  261. package/dist/chunks/chunk-DNLC7HVK.js.map +1 -0
  262. package/dist/chunks/chunk-DOP7DN3W.js +78 -0
  263. package/dist/chunks/chunk-DOP7DN3W.js.map +1 -0
  264. package/dist/chunks/chunk-DSAPUEWR.js +81 -0
  265. package/dist/chunks/chunk-DSAPUEWR.js.map +1 -0
  266. package/dist/chunks/chunk-DTZHLZH2.js +8 -0
  267. package/dist/chunks/chunk-DTZHLZH2.js.map +1 -0
  268. package/dist/chunks/chunk-DZAOLWAS.js +238 -0
  269. package/dist/chunks/chunk-DZAOLWAS.js.map +1 -0
  270. package/dist/chunks/chunk-E572KIOQ.js +83 -0
  271. package/dist/chunks/chunk-E572KIOQ.js.map +1 -0
  272. package/dist/chunks/chunk-EBKJVMIY.js +79 -0
  273. package/dist/chunks/chunk-EBKJVMIY.js.map +1 -0
  274. package/dist/chunks/chunk-ECXRMWLT.js +94 -0
  275. package/dist/chunks/chunk-ECXRMWLT.js.map +1 -0
  276. package/dist/chunks/chunk-EIIKSMCN.js +96 -0
  277. package/dist/chunks/chunk-EIIKSMCN.js.map +1 -0
  278. package/dist/chunks/chunk-EJZQSOHU.js +85 -0
  279. package/dist/chunks/chunk-EJZQSOHU.js.map +1 -0
  280. package/dist/chunks/chunk-EP4SJRC6.js +99 -0
  281. package/dist/chunks/chunk-EP4SJRC6.js.map +1 -0
  282. package/dist/chunks/chunk-EXNO2VEU.js +85 -0
  283. package/dist/chunks/chunk-EXNO2VEU.js.map +1 -0
  284. package/dist/chunks/chunk-FAMJLVHG.js +92 -0
  285. package/dist/chunks/chunk-FAMJLVHG.js.map +1 -0
  286. package/dist/chunks/chunk-FBE6FA2H.js +45 -0
  287. package/dist/chunks/chunk-FBE6FA2H.js.map +1 -0
  288. package/dist/chunks/chunk-FDIYM6TD.js +68 -0
  289. package/dist/chunks/chunk-FDIYM6TD.js.map +1 -0
  290. package/dist/chunks/chunk-FEIMJLFV.js +85 -0
  291. package/dist/chunks/chunk-FEIMJLFV.js.map +1 -0
  292. package/dist/chunks/chunk-FIN4YG3K.js +233 -0
  293. package/dist/chunks/chunk-FIN4YG3K.js.map +1 -0
  294. package/dist/chunks/chunk-FQMHR6ZF.js +92 -0
  295. package/dist/chunks/chunk-FQMHR6ZF.js.map +1 -0
  296. package/dist/chunks/chunk-FROMX3AY.js +78 -0
  297. package/dist/chunks/chunk-FROMX3AY.js.map +1 -0
  298. package/dist/chunks/chunk-FS7SRRSA.js +96 -0
  299. package/dist/chunks/chunk-FS7SRRSA.js.map +1 -0
  300. package/dist/chunks/chunk-FVD3INZH.js +69 -0
  301. package/dist/chunks/chunk-FVD3INZH.js.map +1 -0
  302. package/dist/chunks/chunk-G5R527RC.js +90 -0
  303. package/dist/chunks/chunk-G5R527RC.js.map +1 -0
  304. package/dist/chunks/chunk-GBGZRLXO.js +45 -0
  305. package/dist/chunks/chunk-GBGZRLXO.js.map +1 -0
  306. package/dist/chunks/chunk-GBU4IXYM.js +95 -0
  307. package/dist/chunks/chunk-GBU4IXYM.js.map +1 -0
  308. package/dist/chunks/chunk-GDZ632HR.js +244 -0
  309. package/dist/chunks/chunk-GDZ632HR.js.map +1 -0
  310. package/dist/chunks/chunk-GE7AVAEW.js +99 -0
  311. package/dist/chunks/chunk-GE7AVAEW.js.map +1 -0
  312. package/dist/chunks/chunk-GJVATV62.js +43 -0
  313. package/dist/chunks/chunk-GJVATV62.js.map +1 -0
  314. package/dist/chunks/chunk-GWSHKTCL.js +33 -0
  315. package/dist/chunks/chunk-GWSHKTCL.js.map +1 -0
  316. package/dist/chunks/chunk-GXXWWT6Y.js +96 -0
  317. package/dist/chunks/chunk-GXXWWT6Y.js.map +1 -0
  318. package/dist/chunks/chunk-H2Z5FH4R.js +76 -0
  319. package/dist/chunks/chunk-H2Z5FH4R.js.map +1 -0
  320. package/dist/chunks/chunk-H7YSTWT5.js +45 -0
  321. package/dist/chunks/chunk-H7YSTWT5.js.map +1 -0
  322. package/dist/chunks/chunk-HAP4ICAJ.js +8 -0
  323. package/dist/chunks/chunk-HAP4ICAJ.js.map +1 -0
  324. package/dist/chunks/chunk-HAP6ALTQ.js +78 -0
  325. package/dist/chunks/chunk-HAP6ALTQ.js.map +1 -0
  326. package/dist/chunks/chunk-HARRGXYA.js +243 -0
  327. package/dist/chunks/chunk-HARRGXYA.js.map +1 -0
  328. package/dist/chunks/chunk-HL7H4ZGY.js +82 -0
  329. package/dist/chunks/chunk-HL7H4ZGY.js.map +1 -0
  330. package/dist/chunks/chunk-HNCSSLU6.js +95 -0
  331. package/dist/chunks/chunk-HNCSSLU6.js.map +1 -0
  332. package/dist/chunks/chunk-HQ7IWQPH.js +80 -0
  333. package/dist/chunks/chunk-HQ7IWQPH.js.map +1 -0
  334. package/dist/chunks/chunk-IA235UXD.js +79 -0
  335. package/dist/chunks/chunk-IA235UXD.js.map +1 -0
  336. package/dist/chunks/chunk-IDZOOEB2.js +85 -0
  337. package/dist/chunks/chunk-IDZOOEB2.js.map +1 -0
  338. package/dist/chunks/chunk-IGSFWBNK.js +235 -0
  339. package/dist/chunks/chunk-IGSFWBNK.js.map +1 -0
  340. package/dist/chunks/chunk-IIDUZWYL.js +78 -0
  341. package/dist/chunks/chunk-IIDUZWYL.js.map +1 -0
  342. package/dist/chunks/chunk-IKVCQGA6.js +79 -0
  343. package/dist/chunks/chunk-IKVCQGA6.js.map +1 -0
  344. package/dist/chunks/chunk-IPRRYKZD.js +95 -0
  345. package/dist/chunks/chunk-IPRRYKZD.js.map +1 -0
  346. package/dist/chunks/chunk-IT6EGJUH.js +68 -0
  347. package/dist/chunks/chunk-IT6EGJUH.js.map +1 -0
  348. package/dist/chunks/chunk-IWSVL7HX.js +94 -0
  349. package/dist/chunks/chunk-IWSVL7HX.js.map +1 -0
  350. package/dist/chunks/chunk-J3I5LKXH.js +60 -0
  351. package/dist/chunks/chunk-J3I5LKXH.js.map +1 -0
  352. package/dist/chunks/chunk-JDSSQE7I.js +56 -0
  353. package/dist/chunks/chunk-JDSSQE7I.js.map +1 -0
  354. package/dist/chunks/chunk-JKX62AOP.js +8 -0
  355. package/dist/chunks/chunk-JKX62AOP.js.map +1 -0
  356. package/dist/chunks/chunk-JMYRH33D.js +84 -0
  357. package/dist/chunks/chunk-JMYRH33D.js.map +1 -0
  358. package/dist/chunks/chunk-JX3F6YCC.js +43 -0
  359. package/dist/chunks/chunk-JX3F6YCC.js.map +1 -0
  360. package/dist/chunks/chunk-JXMZQ3DF.js +249 -0
  361. package/dist/chunks/chunk-JXMZQ3DF.js.map +1 -0
  362. package/dist/chunks/chunk-K5SSEHCG.js +92 -0
  363. package/dist/chunks/chunk-K5SSEHCG.js.map +1 -0
  364. package/dist/chunks/chunk-K7JGTBMV.js +248 -0
  365. package/dist/chunks/chunk-K7JGTBMV.js.map +1 -0
  366. package/dist/chunks/chunk-KBQUCIRG.js +233 -0
  367. package/dist/chunks/chunk-KBQUCIRG.js.map +1 -0
  368. package/dist/chunks/chunk-KGVAUC45.js +242 -0
  369. package/dist/chunks/chunk-KGVAUC45.js.map +1 -0
  370. package/dist/chunks/chunk-KH3ZEJAY.js +95 -0
  371. package/dist/chunks/chunk-KH3ZEJAY.js.map +1 -0
  372. package/dist/chunks/chunk-KIK3YNR7.js +95 -0
  373. package/dist/chunks/chunk-KIK3YNR7.js.map +1 -0
  374. package/dist/chunks/chunk-KKV6WBJ2.js +234 -0
  375. package/dist/chunks/chunk-KKV6WBJ2.js.map +1 -0
  376. package/dist/chunks/chunk-KWCQRFC3.js +56 -0
  377. package/dist/chunks/chunk-KWCQRFC3.js.map +1 -0
  378. package/dist/chunks/chunk-KWUJVUKA.js +99 -0
  379. package/dist/chunks/chunk-KWUJVUKA.js.map +1 -0
  380. package/dist/chunks/chunk-KYGAKC4X.js +82 -0
  381. package/dist/chunks/chunk-KYGAKC4X.js.map +1 -0
  382. package/dist/chunks/chunk-LMWMNMIU.js +99 -0
  383. package/dist/chunks/chunk-LMWMNMIU.js.map +1 -0
  384. package/dist/chunks/chunk-LSTECKJV.js +56 -0
  385. package/dist/chunks/chunk-LSTECKJV.js.map +1 -0
  386. package/dist/chunks/chunk-LT563K5H.js +78 -0
  387. package/dist/chunks/chunk-LT563K5H.js.map +1 -0
  388. package/dist/chunks/chunk-LVWZUV4A.js +86 -0
  389. package/dist/chunks/chunk-LVWZUV4A.js.map +1 -0
  390. package/dist/chunks/chunk-LWBXN5C4.js +66 -0
  391. package/dist/chunks/chunk-LWBXN5C4.js.map +1 -0
  392. package/dist/chunks/chunk-LXQKATBH.js +91 -0
  393. package/dist/chunks/chunk-LXQKATBH.js.map +1 -0
  394. package/dist/chunks/chunk-M2PGI5QL.js +92 -0
  395. package/dist/chunks/chunk-M2PGI5QL.js.map +1 -0
  396. package/dist/chunks/chunk-M3D3T5OO.js +45 -0
  397. package/dist/chunks/chunk-M3D3T5OO.js.map +1 -0
  398. package/dist/chunks/chunk-M43YVT6M.js +8 -0
  399. package/dist/chunks/chunk-M43YVT6M.js.map +1 -0
  400. package/dist/chunks/chunk-MCMAHBGE.js +3455 -0
  401. package/dist/chunks/chunk-MCMAHBGE.js.map +1 -0
  402. package/dist/chunks/chunk-MJMLVDAV.js +82 -0
  403. package/dist/chunks/chunk-MJMLVDAV.js.map +1 -0
  404. package/dist/chunks/chunk-MNYMPXJZ.js +95 -0
  405. package/dist/chunks/chunk-MNYMPXJZ.js.map +1 -0
  406. package/dist/chunks/chunk-MT3XAJZC.js +61 -0
  407. package/dist/chunks/chunk-MT3XAJZC.js.map +1 -0
  408. package/dist/chunks/chunk-MYRQCWA6.js +81 -0
  409. package/dist/chunks/chunk-MYRQCWA6.js.map +1 -0
  410. package/dist/chunks/chunk-NFPHKFFE.js +78 -0
  411. package/dist/chunks/chunk-NFPHKFFE.js.map +1 -0
  412. package/dist/chunks/chunk-NLW7S5TN.js +94 -0
  413. package/dist/chunks/chunk-NLW7S5TN.js.map +1 -0
  414. package/dist/chunks/chunk-NY5T6G3K.js +8 -0
  415. package/dist/chunks/chunk-NY5T6G3K.js.map +1 -0
  416. package/dist/chunks/chunk-NYR2RLEI.js +65 -0
  417. package/dist/chunks/chunk-NYR2RLEI.js.map +1 -0
  418. package/dist/chunks/chunk-O2YP7VIE.js +245 -0
  419. package/dist/chunks/chunk-O2YP7VIE.js.map +1 -0
  420. package/dist/chunks/chunk-O3WD4F3W.js +92 -0
  421. package/dist/chunks/chunk-O3WD4F3W.js.map +1 -0
  422. package/dist/chunks/chunk-OAKKH2XA.js +99 -0
  423. package/dist/chunks/chunk-OAKKH2XA.js.map +1 -0
  424. package/dist/chunks/chunk-OALKFNG4.js +99 -0
  425. package/dist/chunks/chunk-OALKFNG4.js.map +1 -0
  426. package/dist/chunks/chunk-OB2TPXBB.js +85 -0
  427. package/dist/chunks/chunk-OB2TPXBB.js.map +1 -0
  428. package/dist/chunks/chunk-OBIKEFCI.js +56 -0
  429. package/dist/chunks/chunk-OBIKEFCI.js.map +1 -0
  430. package/dist/chunks/chunk-OEJMOV45.js +78 -0
  431. package/dist/chunks/chunk-OEJMOV45.js.map +1 -0
  432. package/dist/chunks/chunk-OFYYP7AK.js +94 -0
  433. package/dist/chunks/chunk-OFYYP7AK.js.map +1 -0
  434. package/dist/chunks/chunk-OH5UJYOH.js +83 -0
  435. package/dist/chunks/chunk-OH5UJYOH.js.map +1 -0
  436. package/dist/chunks/chunk-OLDZGCD4.js +45 -0
  437. package/dist/chunks/chunk-OLDZGCD4.js.map +1 -0
  438. package/dist/chunks/chunk-ONVGVU57.js +243 -0
  439. package/dist/chunks/chunk-ONVGVU57.js.map +1 -0
  440. package/dist/chunks/chunk-OWELU5YR.js +43 -0
  441. package/dist/chunks/chunk-OWELU5YR.js.map +1 -0
  442. package/dist/chunks/chunk-P4CAO52E.js +43 -0
  443. package/dist/chunks/chunk-P4CAO52E.js.map +1 -0
  444. package/dist/chunks/chunk-P6SNSCN4.js +235 -0
  445. package/dist/chunks/chunk-P6SNSCN4.js.map +1 -0
  446. package/dist/chunks/chunk-PJIOSYIC.js +241 -0
  447. package/dist/chunks/chunk-PJIOSYIC.js.map +1 -0
  448. package/dist/chunks/chunk-PJMWNLXZ.js +80 -0
  449. package/dist/chunks/chunk-PJMWNLXZ.js.map +1 -0
  450. package/dist/chunks/chunk-PRYR7UB6.js +95 -0
  451. package/dist/chunks/chunk-PRYR7UB6.js.map +1 -0
  452. package/dist/chunks/chunk-PSGZN2AP.js +8 -0
  453. package/dist/chunks/chunk-PSGZN2AP.js.map +1 -0
  454. package/dist/chunks/chunk-PWNPDEWD.js +43 -0
  455. package/dist/chunks/chunk-PWNPDEWD.js.map +1 -0
  456. package/dist/chunks/chunk-QGVSNUAF.js +79 -0
  457. package/dist/chunks/chunk-QGVSNUAF.js.map +1 -0
  458. package/dist/chunks/chunk-QHGH7FF6.js +28 -0
  459. package/dist/chunks/chunk-QHGH7FF6.js.map +1 -0
  460. package/dist/chunks/chunk-QIN2S2F7.js +94 -0
  461. package/dist/chunks/chunk-QIN2S2F7.js.map +1 -0
  462. package/dist/chunks/chunk-QKAKO3CZ.js +233 -0
  463. package/dist/chunks/chunk-QKAKO3CZ.js.map +1 -0
  464. package/dist/chunks/chunk-QKYFFNPR.js +3453 -0
  465. package/dist/chunks/chunk-QKYFFNPR.js.map +1 -0
  466. package/dist/chunks/chunk-QMIYPOBM.js +3458 -0
  467. package/dist/chunks/chunk-QMIYPOBM.js.map +1 -0
  468. package/dist/chunks/chunk-QMYMPOQQ.js +69 -0
  469. package/dist/chunks/chunk-QMYMPOQQ.js.map +1 -0
  470. package/dist/chunks/chunk-QSFYRRIN.js +85 -0
  471. package/dist/chunks/chunk-QSFYRRIN.js.map +1 -0
  472. package/dist/chunks/chunk-QVPOOZ5O.js +64 -0
  473. package/dist/chunks/chunk-QVPOOZ5O.js.map +1 -0
  474. package/dist/chunks/chunk-QXKGZ752.js +43 -0
  475. package/dist/chunks/chunk-QXKGZ752.js.map +1 -0
  476. package/dist/chunks/chunk-QZ4TYR6G.js +43 -0
  477. package/dist/chunks/chunk-QZ4TYR6G.js.map +1 -0
  478. package/dist/chunks/chunk-R5HX7O5I.js +81 -0
  479. package/dist/chunks/chunk-R5HX7O5I.js.map +1 -0
  480. package/dist/chunks/chunk-RF2VC7DN.js +239 -0
  481. package/dist/chunks/chunk-RF2VC7DN.js.map +1 -0
  482. package/dist/chunks/chunk-RGQDJQVE.js +3451 -0
  483. package/dist/chunks/chunk-RGQDJQVE.js.map +1 -0
  484. package/dist/chunks/chunk-RIPZMRDA.js +238 -0
  485. package/dist/chunks/chunk-RIPZMRDA.js.map +1 -0
  486. package/dist/chunks/chunk-RKBUP3WS.js +28 -0
  487. package/dist/chunks/chunk-RKBUP3WS.js.map +1 -0
  488. package/dist/chunks/chunk-RTPJGNMA.js +230 -0
  489. package/dist/chunks/chunk-RTPJGNMA.js.map +1 -0
  490. package/dist/chunks/chunk-S6F2NHT6.js +85 -0
  491. package/dist/chunks/chunk-S6F2NHT6.js.map +1 -0
  492. package/dist/chunks/chunk-SI7DUJBA.js +28 -0
  493. package/dist/chunks/chunk-SI7DUJBA.js.map +1 -0
  494. package/dist/chunks/chunk-SRCICFU7.js +28 -0
  495. package/dist/chunks/chunk-SRCICFU7.js.map +1 -0
  496. package/dist/chunks/chunk-SWROECSL.js +82 -0
  497. package/dist/chunks/chunk-SWROECSL.js.map +1 -0
  498. package/dist/chunks/chunk-SXRET5LH.js +235 -0
  499. package/dist/chunks/chunk-SXRET5LH.js.map +1 -0
  500. package/dist/chunks/chunk-TGF5F45T.js +94 -0
  501. package/dist/chunks/chunk-TGF5F45T.js.map +1 -0
  502. package/dist/chunks/chunk-THUTSBBP.js +56 -0
  503. package/dist/chunks/chunk-THUTSBBP.js.map +1 -0
  504. package/dist/chunks/chunk-TPZRDVLI.js +85 -0
  505. package/dist/chunks/chunk-TPZRDVLI.js.map +1 -0
  506. package/dist/chunks/chunk-TUVS6HU4.js +85 -0
  507. package/dist/chunks/chunk-TUVS6HU4.js.map +1 -0
  508. package/dist/chunks/chunk-TYH4XFYQ.js +84 -0
  509. package/dist/chunks/chunk-TYH4XFYQ.js.map +1 -0
  510. package/dist/chunks/chunk-TZGAS66M.js +56 -0
  511. package/dist/chunks/chunk-TZGAS66M.js.map +1 -0
  512. package/dist/chunks/chunk-U54LOZ6V.js +235 -0
  513. package/dist/chunks/chunk-U54LOZ6V.js.map +1 -0
  514. package/dist/chunks/chunk-U7WNOBID.js +235 -0
  515. package/dist/chunks/chunk-U7WNOBID.js.map +1 -0
  516. package/dist/chunks/chunk-UDZ6DBC4.js +65 -0
  517. package/dist/chunks/chunk-UDZ6DBC4.js.map +1 -0
  518. package/dist/chunks/chunk-UF7XJJHR.js +56 -0
  519. package/dist/chunks/chunk-UF7XJJHR.js.map +1 -0
  520. package/dist/chunks/chunk-UFJLGWZN.js +95 -0
  521. package/dist/chunks/chunk-UFJLGWZN.js.map +1 -0
  522. package/dist/chunks/chunk-UHU4AWX2.js +28 -0
  523. package/dist/chunks/chunk-UHU4AWX2.js.map +1 -0
  524. package/dist/chunks/chunk-UNB4FVMX.js +248 -0
  525. package/dist/chunks/chunk-UNB4FVMX.js.map +1 -0
  526. package/dist/chunks/chunk-US5NIIW7.js +244 -0
  527. package/dist/chunks/chunk-US5NIIW7.js.map +1 -0
  528. package/dist/chunks/chunk-V53ESOPP.js +79 -0
  529. package/dist/chunks/chunk-V53ESOPP.js.map +1 -0
  530. package/dist/chunks/chunk-VGGCSCVL.js +94 -0
  531. package/dist/chunks/chunk-VGGCSCVL.js.map +1 -0
  532. package/dist/chunks/chunk-VMAASK34.js +234 -0
  533. package/dist/chunks/chunk-VMAASK34.js.map +1 -0
  534. package/dist/chunks/chunk-VN2QDEVU.js +250 -0
  535. package/dist/chunks/chunk-VN2QDEVU.js.map +1 -0
  536. package/dist/chunks/chunk-W5FVZTR6.js +56 -0
  537. package/dist/chunks/chunk-W5FVZTR6.js.map +1 -0
  538. package/dist/chunks/chunk-WFFIUFJJ.js +28 -0
  539. package/dist/chunks/chunk-WFFIUFJJ.js.map +1 -0
  540. package/dist/chunks/chunk-WFSIKRZ3.js +95 -0
  541. package/dist/chunks/chunk-WFSIKRZ3.js.map +1 -0
  542. package/dist/chunks/chunk-WHTJNLWJ.js +235 -0
  543. package/dist/chunks/chunk-WHTJNLWJ.js.map +1 -0
  544. package/dist/chunks/chunk-WTN76Y5P.js +74 -0
  545. package/dist/chunks/chunk-WTN76Y5P.js.map +1 -0
  546. package/dist/chunks/chunk-WVMOFVRE.js +74 -0
  547. package/dist/chunks/chunk-WVMOFVRE.js.map +1 -0
  548. package/dist/chunks/chunk-WXQLAXP4.js +73 -0
  549. package/dist/chunks/chunk-WXQLAXP4.js.map +1 -0
  550. package/dist/chunks/chunk-X2ZV2OFN.js +82 -0
  551. package/dist/chunks/chunk-X2ZV2OFN.js.map +1 -0
  552. package/dist/chunks/chunk-X7TJEF7P.js +78 -0
  553. package/dist/chunks/chunk-X7TJEF7P.js.map +1 -0
  554. package/dist/chunks/chunk-XAJNR7FS.js +74 -0
  555. package/dist/chunks/chunk-XAJNR7FS.js.map +1 -0
  556. package/dist/chunks/chunk-XCECF27R.js +45 -0
  557. package/dist/chunks/chunk-XCECF27R.js.map +1 -0
  558. package/dist/chunks/chunk-XCJMG5II.js +229 -0
  559. package/dist/chunks/chunk-XCJMG5II.js.map +1 -0
  560. package/dist/chunks/chunk-XNNXOUDF.js +245 -0
  561. package/dist/chunks/chunk-XNNXOUDF.js.map +1 -0
  562. package/dist/chunks/chunk-YBDDKT65.js +69 -0
  563. package/dist/chunks/chunk-YBDDKT65.js.map +1 -0
  564. package/dist/chunks/chunk-YBFPPPMD.js +233 -0
  565. package/dist/chunks/chunk-YBFPPPMD.js.map +1 -0
  566. package/dist/chunks/chunk-YKKQ6AI7.js +69 -0
  567. package/dist/chunks/chunk-YKKQ6AI7.js.map +1 -0
  568. package/dist/chunks/chunk-YLHGELZY.js +79 -0
  569. package/dist/chunks/chunk-YLHGELZY.js.map +1 -0
  570. package/dist/chunks/chunk-YQC26WHY.js +79 -0
  571. package/dist/chunks/chunk-YQC26WHY.js.map +1 -0
  572. package/dist/chunks/chunk-YQXKY6CK.js +99 -0
  573. package/dist/chunks/chunk-YQXKY6CK.js.map +1 -0
  574. package/dist/chunks/chunk-YS4T2ORC.js +86 -0
  575. package/dist/chunks/chunk-YS4T2ORC.js.map +1 -0
  576. package/dist/chunks/chunk-YSK5NQO6.js +235 -0
  577. package/dist/chunks/chunk-YSK5NQO6.js.map +1 -0
  578. package/dist/chunks/chunk-YZSGZTWA.js +8 -0
  579. package/dist/chunks/chunk-YZSGZTWA.js.map +1 -0
  580. package/dist/chunks/chunk-Z6FBIC76.js +83 -0
  581. package/dist/chunks/chunk-Z6FBIC76.js.map +1 -0
  582. package/dist/chunks/chunk-ZBUXIAEV.js +3431 -0
  583. package/dist/chunks/chunk-ZBUXIAEV.js.map +1 -0
  584. package/dist/chunks/chunk-ZNU2BCTJ.js +95 -0
  585. package/dist/chunks/chunk-ZNU2BCTJ.js.map +1 -0
  586. package/dist/chunks/chunk-ZTFOPRHT.js +242 -0
  587. package/dist/chunks/chunk-ZTFOPRHT.js.map +1 -0
  588. package/dist/chunks/chunk-ZU6ANMBF.js +28 -0
  589. package/dist/chunks/chunk-ZU6ANMBF.js.map +1 -0
  590. package/dist/chunks/chunk-ZZFSVIVR.js +85 -0
  591. package/dist/chunks/chunk-ZZFSVIVR.js.map +1 -0
  592. package/dist/exports/computed-item.context.d.ts +3 -0
  593. package/dist/exports/computed-item.context.js +1 -1
  594. package/dist/exports/computed.context.d.ts +9 -0
  595. package/dist/exports/computed.context.js +1 -1
  596. package/dist/exports/session.context.d.ts +16 -1
  597. package/dist/exports/session.context.js +1 -1
  598. package/dist/index.d.ts +2 -1
  599. package/dist/index.js +34 -34
  600. package/dist/item.css +6 -0
  601. package/dist/qti-components-jsx.d.ts +15 -11
  602. package/dist/qti-item/components/item-container.js +2 -2
  603. package/dist/qti-item/components/item-show-correct-response.js +2 -2
  604. package/dist/qti-item/components/print-item-variables.js +2 -2
  605. package/dist/qti-item/core/index.js +6 -6
  606. package/dist/qti-test/components/index.d.ts +4 -3
  607. package/dist/qti-test/components/index.js +21 -21
  608. package/dist/qti-test/components/test-container.js +2 -2
  609. package/dist/qti-test/components/test-navigation.d.ts +4 -3
  610. package/dist/qti-test/components/test-navigation.js +3 -3
  611. package/dist/qti-test/components/test-next.d.ts +4 -1
  612. package/dist/qti-test/components/test-next.js +2 -2
  613. package/dist/qti-test/components/test-paging-buttons-stamp.js +2 -2
  614. package/dist/qti-test/components/test-prev.d.ts +4 -1
  615. package/dist/qti-test/components/test-prev.js +2 -2
  616. package/dist/qti-test/components/test-print-context.d.ts +4 -1
  617. package/dist/qti-test/components/test-print-context.js +2 -2
  618. package/dist/qti-test/components/test-print-item-variables.d.ts +4 -1
  619. package/dist/qti-test/components/test-print-item-variables.js +2 -2
  620. package/dist/qti-test/components/test-scoring-buttons.d.ts +7 -1
  621. package/dist/qti-test/components/test-scoring-buttons.js +2 -2
  622. package/dist/qti-test/components/test-scoring-feedback.d.ts +4 -1
  623. package/dist/qti-test/components/test-scoring-feedback.js +2 -2
  624. package/dist/qti-test/components/test-scoring-toggle.d.ts +20 -0
  625. package/dist/qti-test/components/test-scoring-toggle.js +9 -0
  626. package/dist/qti-test/components/test-scoring-toggle.js.map +1 -0
  627. package/dist/qti-test/components/test-section-buttons-stamp.js +2 -2
  628. package/dist/qti-test/components/test-show-correct-response.d.ts +4 -1
  629. package/dist/qti-test/components/test-show-correct-response.js +2 -2
  630. package/dist/qti-test/components/test-stamp.d.ts +9 -2
  631. package/dist/qti-test/components/test-stamp.js +2 -2
  632. package/dist/qti-test/components/test-view-toggle copy.js +63 -0
  633. package/dist/qti-test/components/test-view-toggle copy.js.map +1 -0
  634. package/dist/qti-test/components/test-view-toggle.d.ts +4 -3
  635. package/dist/qti-test/components/test-view-toggle.js +2 -2
  636. package/dist/qti-test/components/test-view.js +2 -2
  637. package/dist/qti-test/core/index.d.ts +3 -2
  638. package/dist/qti-test/core/index.js +2 -2
  639. package/dist/qti-test-feedback-BGPOO6Zu.d.ts +98 -0
  640. package/dist/qti-test-feedback-C2mE_Xcg.d.ts +85 -0
  641. package/dist/qti-test-feedback-C4bd_5i4.d.ts +98 -0
  642. package/dist/vscode.html-custom-data.json +14 -8
  643. package/package.json +19 -17
@@ -0,0 +1,870 @@
1
+ import {
2
+ INITIAL_SESSION_CONTEXT,
3
+ sessionContext
4
+ } from "./chunk-UZ4QB5IO.js";
5
+ import {
6
+ INITIAL_TEST_CONTEXT,
7
+ testContext
8
+ } from "./chunk-CJADUWEC.js";
9
+ import {
10
+ QtiModalFeedback
11
+ } from "./chunk-Y7BBA7SG.js";
12
+ import {
13
+ qtiTransformItem
14
+ } from "./chunk-VEWD22O5.js";
15
+ import {
16
+ __decorateClass
17
+ } from "./chunk-H2JE6IVU.js";
18
+
19
+ // src/lib/qti-test/core/qti-test.ts
20
+ import { html } from "lit";
21
+ import { customElement } from "lit/decorators.js";
22
+
23
+ // src/lib/qti-test/core/mixins/test-navigation.mixin.ts
24
+ import { property } from "lit/decorators.js";
25
+ var NavigationErrorType = /* @__PURE__ */ ((NavigationErrorType2) => {
26
+ NavigationErrorType2["ITEM_NOT_FOUND"] = "item-not-found";
27
+ NavigationErrorType2["SECTION_NOT_FOUND"] = "section-not-found";
28
+ NavigationErrorType2["LOAD_ERROR"] = "load-error";
29
+ NavigationErrorType2["NETWORK_ERROR"] = "network-error";
30
+ NavigationErrorType2["TIMEOUT_ERROR"] = "timeout-error";
31
+ return NavigationErrorType2;
32
+ })(NavigationErrorType || {});
33
+ var TestNavigationMixin = (superClass) => {
34
+ class TestNavigationClass extends superClass {
35
+ constructor(...args) {
36
+ super(...args);
37
+ this.navigate = null;
38
+ this.cacheTransform = false;
39
+ this.requestTimeout = 3e4;
40
+ this.showLoadingIndicators = true;
41
+ this._activeRequests = [];
42
+ this._navigationInProgress = false;
43
+ this._lastError = null;
44
+ this._lastNavigationRequestId = null;
45
+ this._targetNavigation = null;
46
+ this.addEventListener(
47
+ "qti-request-navigation",
48
+ async ({ detail }) => {
49
+ if (!detail?.id) return;
50
+ const navigationRequestId = `nav_${Date.now()}_${Math.random()}`;
51
+ this._lastNavigationRequestId = navigationRequestId;
52
+ try {
53
+ this._navigationInProgress = true;
54
+ this._lastError = null;
55
+ this._dispatchStatusEvent({ loading: true, type: detail.type, id: detail.id });
56
+ this._cancelActiveRequests();
57
+ this._targetNavigation = { type: detail.type, id: detail.id };
58
+ if (detail.type === "item") {
59
+ await this._navigateToItem(detail.id);
60
+ } else if (detail.type === "section") {
61
+ await this._navigateToSection(detail.id);
62
+ }
63
+ if (this._lastNavigationRequestId !== navigationRequestId) {
64
+ console.log("Navigation was superseded by a newer request");
65
+ return;
66
+ }
67
+ } catch (error) {
68
+ if (this._lastNavigationRequestId === navigationRequestId) {
69
+ const navError = this._normalizeError(error, detail.type, detail.id);
70
+ this._lastError = navError;
71
+ this._dispatchErrorEvent(navError);
72
+ console.error(`Navigation error (${navError.type}):`, navError.message, navError.details);
73
+ }
74
+ } finally {
75
+ if (this._lastNavigationRequestId === navigationRequestId) {
76
+ this._navigationInProgress = false;
77
+ this._dispatchStatusEvent({ loading: false, type: detail.type, id: detail.id });
78
+ }
79
+ }
80
+ }
81
+ );
82
+ this.addEventListener("qti-assessment-test-connected", (e) => {
83
+ this._testElement = e.detail;
84
+ this._initializeNavigation();
85
+ });
86
+ }
87
+ /**
88
+ * Initialize navigation when test is first connected
89
+ */
90
+ _initializeNavigation() {
91
+ let id;
92
+ if (this.navigate === "section") {
93
+ id = this._testElement.querySelector("qti-assessment-section")?.identifier;
94
+ }
95
+ if (this.navigate === "item") {
96
+ id = this.sessionContext.navItemId ?? this._testElement.querySelector("qti-assessment-item-ref")?.identifier;
97
+ }
98
+ if (id) {
99
+ this.dispatchEvent(
100
+ new CustomEvent("qti-request-navigation", {
101
+ detail: { type: this.navigate === "section" ? "section" : "item", id },
102
+ bubbles: true,
103
+ composed: true
104
+ })
105
+ );
106
+ }
107
+ }
108
+ navigateTo(type, id) {
109
+ if (!id) {
110
+ if (type === "section") {
111
+ id = this._testElement?.querySelector("qti-assessment-section")?.identifier;
112
+ }
113
+ if (type === "item") {
114
+ id = this._testElement?.querySelector("qti-assessment-item-ref")?.identifier;
115
+ }
116
+ }
117
+ this.dispatchEvent(
118
+ new CustomEvent("qti-request-navigation", {
119
+ detail: { type, id },
120
+ bubbles: true,
121
+ composed: true
122
+ })
123
+ );
124
+ }
125
+ /**
126
+ * Navigates to a specific item
127
+ */
128
+ async _navigateToItem(itemId) {
129
+ const itemRefEl = this._testElement?.querySelector(
130
+ `qti-assessment-item-ref[identifier="${itemId}"]`
131
+ );
132
+ if (!itemRefEl) {
133
+ throw {
134
+ type: "item-not-found" /* ITEM_NOT_FOUND */,
135
+ message: `Item with identifier "${itemId}" not found.`,
136
+ itemId
137
+ };
138
+ }
139
+ const navPartId = itemRefEl.closest("qti-test-part")?.identifier;
140
+ const navSectionId = itemRefEl.closest("qti-assessment-section")?.identifier;
141
+ this.sessionContext = {
142
+ ...this.sessionContext,
143
+ navPartId,
144
+ navSectionId,
145
+ navItemId: itemId,
146
+ navItemLoading: true
147
+ };
148
+ try {
149
+ await this._loadItems([itemId]);
150
+ } finally {
151
+ this.sessionContext = {
152
+ ...this.sessionContext,
153
+ navItemLoading: false
154
+ };
155
+ }
156
+ }
157
+ /**
158
+ * Navigates to a specific section
159
+ */
160
+ async _navigateToSection(sectionId) {
161
+ const sectionRefEl = this._testElement?.querySelector(
162
+ `qti-assessment-section[identifier="${sectionId}"]`
163
+ );
164
+ if (!sectionRefEl) {
165
+ throw {
166
+ type: "section-not-found" /* SECTION_NOT_FOUND */,
167
+ message: `Section with identifier "${sectionId}" not found.`,
168
+ sectionId
169
+ };
170
+ }
171
+ const navPartId = sectionRefEl.closest("qti-test-part")?.identifier;
172
+ this.sessionContext = {
173
+ ...this.sessionContext,
174
+ navPartId,
175
+ navSectionId: sectionId,
176
+ navItemId: null,
177
+ navItemLoading: true
178
+ };
179
+ try {
180
+ const itemIds = this._getSectionItemIds(sectionId);
181
+ await this._loadItems(itemIds);
182
+ } finally {
183
+ this.sessionContext = {
184
+ ...this.sessionContext,
185
+ navItemLoading: false
186
+ };
187
+ }
188
+ }
189
+ /**
190
+ * Normalize different error types into a consistent NavigationError format
191
+ */
192
+ _normalizeError(error, navigationType, id) {
193
+ if (error && error.type && Object.values(NavigationErrorType).includes(error.type)) {
194
+ return error;
195
+ }
196
+ if (error instanceof DOMException && error.name === "AbortError") {
197
+ return {
198
+ type: "network-error" /* NETWORK_ERROR */,
199
+ message: "Navigation was cancelled because a new navigation was requested.",
200
+ details: error
201
+ };
202
+ }
203
+ if (error.name === "TimeoutError" || error.message && error.message.includes("timeout")) {
204
+ return {
205
+ type: "timeout-error" /* TIMEOUT_ERROR */,
206
+ message: "Request timed out. Please check your network connection.",
207
+ details: error
208
+ };
209
+ }
210
+ if (error instanceof TypeError && error.message.includes("network")) {
211
+ return {
212
+ type: "network-error" /* NETWORK_ERROR */,
213
+ message: "A network error occurred. Please check your connection.",
214
+ details: error
215
+ };
216
+ }
217
+ return {
218
+ type: "load-error" /* LOAD_ERROR */,
219
+ message: `Failed to load ${navigationType}: ${id}`,
220
+ details: error,
221
+ itemId: navigationType === "item" ? id : void 0,
222
+ sectionId: navigationType === "section" ? id : void 0
223
+ };
224
+ }
225
+ /**
226
+ * Dispatch error event to notify the UI
227
+ */
228
+ _dispatchErrorEvent(error) {
229
+ this.dispatchEvent(
230
+ new CustomEvent("qti-navigation-error", {
231
+ detail: error,
232
+ bubbles: true,
233
+ composed: true
234
+ })
235
+ );
236
+ }
237
+ /**
238
+ * Dispatch status event to indicate loading state
239
+ */
240
+ _dispatchStatusEvent(status) {
241
+ if (this.showLoadingIndicators) {
242
+ this.dispatchEvent(
243
+ new CustomEvent("qti-navigation-status", {
244
+ detail: status,
245
+ bubbles: true,
246
+ composed: true
247
+ })
248
+ );
249
+ }
250
+ }
251
+ /**
252
+ * Cancels all active HTTP requests
253
+ */
254
+ _cancelActiveRequests() {
255
+ if (this._activeRequests.length > 0) {
256
+ console.info(`Cancelling ${this._activeRequests.length} pending requests`);
257
+ this._activeRequests.forEach((request) => {
258
+ if (request && request.readyState !== 4) {
259
+ request.abort();
260
+ }
261
+ });
262
+ this._activeRequests = [];
263
+ }
264
+ }
265
+ /**
266
+ * Load items with improved error handling and timeout
267
+ */
268
+ async _loadItems(itemIds) {
269
+ if (!this._testElement || itemIds.length === 0) return;
270
+ const itemRefEls = itemIds.map(
271
+ (id) => this._testElement.querySelector(`qti-assessment-item-ref[identifier="${id}"]`)
272
+ );
273
+ const missingItems = itemRefEls.reduce((missing, el, index) => {
274
+ if (!el) missing.push(itemIds[index]);
275
+ return missing;
276
+ }, []);
277
+ if (missingItems.length > 0) {
278
+ const error = {
279
+ type: "item-not-found" /* ITEM_NOT_FOUND */,
280
+ message: `One or more items not found: ${missingItems.join(", ")}`,
281
+ details: { missingItems }
282
+ };
283
+ throw error;
284
+ }
285
+ this._clearLoadedItems();
286
+ const itemLoadPromises = itemRefEls.map(async (itemRef) => {
287
+ if (!itemRef) return null;
288
+ const timeoutPromise = new Promise((_, reject) => {
289
+ setTimeout(() => {
290
+ reject({
291
+ name: "TimeoutError",
292
+ message: `Request for item ${itemRef.identifier} timed out after ${this.requestTimeout}ms`
293
+ });
294
+ }, this.requestTimeout);
295
+ });
296
+ try {
297
+ const { promise, request } = qtiTransformItem(this.cacheTransform).load(itemRef.href);
298
+ if (request instanceof XMLHttpRequest) {
299
+ this._activeRequests.push(request);
300
+ }
301
+ const apiResult = await Promise.race([promise, timeoutPromise]);
302
+ return {
303
+ itemRef,
304
+ doc: apiResult.htmlDoc(),
305
+ request
306
+ };
307
+ } catch (error) {
308
+ if (error instanceof DOMException && error.name === "AbortError" || error && error.name === "TimeoutError") {
309
+ console.log(
310
+ `Request for item ${itemRef.identifier} was ${error.name === "TimeoutError" ? "timed out" : "aborted"}`
311
+ );
312
+ return null;
313
+ }
314
+ error.itemId = itemRef.identifier;
315
+ throw error;
316
+ }
317
+ });
318
+ try {
319
+ const results = await Promise.all(itemLoadPromises);
320
+ const validResults = results.filter((result) => result !== null);
321
+ validResults.forEach(({ itemRef, doc }) => {
322
+ if (itemRef && doc) itemRef.xmlDoc = doc;
323
+ });
324
+ this._activeRequests = [];
325
+ requestAnimationFrame(() => {
326
+ this.dispatchEvent(
327
+ new CustomEvent("qti-test-loaded", {
328
+ detail: validResults.map(({ itemRef }) => ({
329
+ identifier: itemRef?.identifier,
330
+ element: itemRef
331
+ })),
332
+ bubbles: true,
333
+ composed: true
334
+ })
335
+ );
336
+ });
337
+ if (validResults.length === 0 && itemIds.length > 0) {
338
+ throw {
339
+ type: "load-error" /* LOAD_ERROR */,
340
+ message: "All item requests failed to load",
341
+ details: { itemIds }
342
+ };
343
+ }
344
+ return validResults;
345
+ } catch (error) {
346
+ console.error("Error loading items:", error);
347
+ throw error;
348
+ }
349
+ }
350
+ /**
351
+ * Gets all item IDs in a section
352
+ */
353
+ _getSectionItemIds(navSectionId) {
354
+ const sectionRefEl = this._testElement?.querySelector(
355
+ `qti-assessment-section[identifier="${navSectionId}"]`
356
+ );
357
+ if (!sectionRefEl) {
358
+ throw {
359
+ type: "section-not-found" /* SECTION_NOT_FOUND */,
360
+ message: `Section with identifier "${navSectionId}" not found.`,
361
+ sectionId: navSectionId
362
+ };
363
+ }
364
+ return Array.from(
365
+ this._testElement.querySelectorAll(
366
+ `qti-assessment-section[identifier="${navSectionId}"] > qti-assessment-item-ref`
367
+ )
368
+ ).map((itemRef) => itemRef.identifier);
369
+ }
370
+ /**
371
+ * Clears all loaded items
372
+ */
373
+ _clearLoadedItems() {
374
+ const itemRefEls = this._testElement?.querySelectorAll(
375
+ `qti-assessment-test qti-assessment-item-ref`
376
+ );
377
+ Array.from(itemRefEls || []).forEach((itemElement) => {
378
+ itemElement.xmlDoc = null;
379
+ });
380
+ }
381
+ /**
382
+ * Retry the last failed navigation
383
+ */
384
+ retryNavigation() {
385
+ if (this._lastError) {
386
+ const type = this._lastError.itemId ? "item" : "section";
387
+ const id = this._lastError.itemId || this._lastError.sectionId;
388
+ if (id) {
389
+ this.dispatchEvent(
390
+ new CustomEvent("qti-request-navigation", {
391
+ detail: { type, id },
392
+ bubbles: true,
393
+ composed: true
394
+ })
395
+ );
396
+ }
397
+ } else if (this._targetNavigation) {
398
+ this.dispatchEvent(
399
+ new CustomEvent("qti-request-navigation", {
400
+ detail: this._targetNavigation,
401
+ bubbles: true,
402
+ composed: true
403
+ })
404
+ );
405
+ }
406
+ }
407
+ }
408
+ __decorateClass([
409
+ property({ type: String })
410
+ ], TestNavigationClass.prototype, "navigate", 2);
411
+ __decorateClass([
412
+ property({ type: Boolean, attribute: "cache-transform" })
413
+ ], TestNavigationClass.prototype, "cacheTransform", 2);
414
+ __decorateClass([
415
+ property({ type: Number })
416
+ ], TestNavigationClass.prototype, "requestTimeout", 2);
417
+ __decorateClass([
418
+ property({ type: Boolean })
419
+ ], TestNavigationClass.prototype, "showLoadingIndicators", 2);
420
+ return TestNavigationClass;
421
+ };
422
+
423
+ // src/lib/qti-test/core/mixins/test-view.mixin.ts
424
+ var TestViewMixin = (superClass) => {
425
+ class TestViewClass extends superClass {
426
+ constructor(...args) {
427
+ super(...args);
428
+ this.sessionContext = { ...this.sessionContext, view: "candidate" };
429
+ this.addEventListener("on-test-switch-view", (e) => {
430
+ this.sessionContext = { ...this.sessionContext, view: e.detail };
431
+ this._updateElementView();
432
+ });
433
+ this.addEventListener("qti-assessment-test-connected", () => {
434
+ this._updateElementView();
435
+ });
436
+ this.addEventListener("qti-assessment-item-connected", (e) => {
437
+ this._updateElementView();
438
+ this._setCorrectResponseVisibility(e.detail);
439
+ });
440
+ }
441
+ willUpdate(changedProperties) {
442
+ super.willUpdate(changedProperties);
443
+ if (changedProperties.has("sessionContext")) {
444
+ this._updateElementView();
445
+ }
446
+ }
447
+ // Method to handle view updates for elements based on the current context view
448
+ _updateElementView() {
449
+ if (this._testElement) {
450
+ const viewElements = Array.from(this._testElement.querySelectorAll("[view]"));
451
+ viewElements.forEach((element) => {
452
+ element.classList.toggle("show", element.getAttribute("view") === this.sessionContext.view);
453
+ });
454
+ const assessmentItemRef = this._testElement.querySelector(
455
+ `qti-assessment-item-ref[identifier="${this.sessionContext.navItemId}"]`
456
+ );
457
+ const assessmentItem = assessmentItemRef?.assessmentItem;
458
+ if (assessmentItem) {
459
+ assessmentItem.showCorrectResponse(this.sessionContext.view === "scorer");
460
+ }
461
+ }
462
+ }
463
+ // Event handler for connected QTI assessment items
464
+ _setCorrectResponseVisibility(assessmentItem) {
465
+ assessmentItem.showCorrectResponse(this.sessionContext.view === "scorer");
466
+ }
467
+ }
468
+ return TestViewClass;
469
+ };
470
+
471
+ // src/lib/qti-test/core/test-base.ts
472
+ import { provide } from "@lit/context";
473
+ import { LitElement } from "lit";
474
+ import { property as property2 } from "lit/decorators.js";
475
+ var TestBase = class extends LitElement {
476
+ constructor() {
477
+ super();
478
+ this.testContext = INITIAL_TEST_CONTEXT;
479
+ this.sessionContext = INITIAL_SESSION_CONTEXT;
480
+ /**
481
+ * Updates the variables of an assessment item in the test context.
482
+ * - Matches the assessment item with the corresponding test context item.
483
+ * - If the item is not found, logs a warning.
484
+ * - Updates variables in the test context if exactly one variable exists.
485
+ * - Otherwise, syncs the assessment item's variables with the test context.
486
+ *
487
+ * @param assessmentItem - The assessment item to update.
488
+ */
489
+ this._updateItemInTestContext = (assessmentItem) => {
490
+ const context = assessmentItem._context;
491
+ const identifier = context.identifier;
492
+ const fullVariables = context.variables;
493
+ const itemContext = this.testContext.items.find((i) => i?.identifier === identifier);
494
+ if (!itemContext) {
495
+ console.warn(`Item IDs between assessment.xml and item.xml should match: ${identifier} is not found!`);
496
+ return;
497
+ }
498
+ if (itemContext.variables?.length === 1) {
499
+ this._updateItemVariablesInTestContext(identifier, fullVariables);
500
+ } else {
501
+ assessmentItem.variables = [...itemContext.variables || []];
502
+ }
503
+ };
504
+ this.addEventListener("qti-assessment-test-connected", (e) => {
505
+ this.testContext = INITIAL_TEST_CONTEXT;
506
+ this.sessionContext = INITIAL_SESSION_CONTEXT;
507
+ if (this.testContext && this.testContext.items.length > 0) return;
508
+ this._testElement = e.detail;
509
+ const items = Array.from(this._testElement.querySelectorAll("qti-assessment-item-ref")).map((itemRef) => {
510
+ return {
511
+ href: itemRef.href,
512
+ identifier: itemRef.identifier,
513
+ category: itemRef.category,
514
+ variables: [
515
+ {
516
+ identifier: "completionStatus",
517
+ value: "not_attempted",
518
+ type: "outcome"
519
+ }
520
+ ]
521
+ };
522
+ });
523
+ this.testContext = { ...this.testContext, items };
524
+ });
525
+ this.addEventListener("qti-assessment-item-connected", (e) => {
526
+ const assessmentItem = e.detail;
527
+ const assessmentRefId = assessmentItem.closest("qti-assessment-item-ref")?.identifier;
528
+ if (assessmentRefId) {
529
+ assessmentItem.assessmentItemRefId = assessmentRefId;
530
+ }
531
+ this._updateItemInTestContext(e.detail);
532
+ });
533
+ this.addEventListener("qti-item-context-updated", (e) => {
534
+ this._updateItemVariablesInTestContext(e.detail.itemContext.identifier, e.detail.itemContext.variables);
535
+ });
536
+ }
537
+ _updateItemVariablesInTestContext(identifier, variables) {
538
+ this.testContext = {
539
+ ...this.testContext,
540
+ // Spread existing test context properties
541
+ items: this.testContext.items.map((itemContext) => {
542
+ if (itemContext.identifier !== identifier) {
543
+ return itemContext;
544
+ }
545
+ return {
546
+ ...itemContext,
547
+ // Keep other properties of the item context
548
+ variables: variables.map((variable) => {
549
+ const matchingVariable = itemContext.variables.find((v) => v.identifier === variable.identifier);
550
+ return matchingVariable ? { ...matchingVariable, ...variable } : variable;
551
+ })
552
+ };
553
+ })
554
+ };
555
+ this.dispatchEvent(
556
+ new CustomEvent("qti-test-context-updated", { detail: this.testContext, bubbles: false, composed: false })
557
+ );
558
+ }
559
+ };
560
+ __decorateClass([
561
+ property2({ attribute: false, type: Object }),
562
+ provide({ context: testContext })
563
+ ], TestBase.prototype, "testContext", 2);
564
+ __decorateClass([
565
+ property2({ attribute: false, type: Object }),
566
+ provide({ context: sessionContext })
567
+ ], TestBase.prototype, "sessionContext", 2);
568
+
569
+ // src/lib/qti-test/core/mixins/test-processing.mixin.ts
570
+ var TestProcessingMixin = (superClass) => {
571
+ class TestProcessingElement extends superClass {
572
+ constructor(...args) {
573
+ super(...args);
574
+ this.addEventListener("qti-register-variable", (e) => {
575
+ this.testContext = {
576
+ ...this.testContext,
577
+ testOutcomeVariables: [...this.testContext.testOutcomeVariables || [], e.detail.variable]
578
+ };
579
+ e.stopPropagation();
580
+ });
581
+ this.addEventListener(
582
+ "qti-set-outcome-value",
583
+ (e) => {
584
+ const { outcomeIdentifier, value } = e.detail;
585
+ this.updateOutcomeVariable(outcomeIdentifier, value);
586
+ e.stopPropagation();
587
+ }
588
+ );
589
+ }
590
+ outcomeProcessing() {
591
+ const outcomeProcessor = this.querySelector("qti-outcome-processing");
592
+ if (!outcomeProcessor) return false;
593
+ outcomeProcessor?.process();
594
+ return true;
595
+ }
596
+ /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */
597
+ updateOutcomeVariable(identifier, value) {
598
+ const outcomeVariable = this.getOutcome(identifier);
599
+ if (!outcomeVariable) {
600
+ console.warn(`Can not set qti-outcome-identifier: ${identifier}, it is not available`);
601
+ return;
602
+ }
603
+ this.testContext = {
604
+ ...this.testContext,
605
+ testOutcomeVariables: this.testContext.testOutcomeVariables?.map((v) => {
606
+ if (v.identifier !== identifier) {
607
+ return v;
608
+ }
609
+ return {
610
+ ...v,
611
+ value: outcomeVariable.cardinality === "single" ? value : [...v.value, value]
612
+ };
613
+ })
614
+ };
615
+ }
616
+ getOutcome(identifier) {
617
+ return this.getVariable(identifier);
618
+ }
619
+ getVariable(identifier) {
620
+ return this.testContext.testOutcomeVariables?.find((v) => v.identifier === identifier) || null;
621
+ }
622
+ /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */
623
+ }
624
+ return TestProcessingElement;
625
+ };
626
+
627
+ // src/lib/qti-test/core/qti-test.ts
628
+ var QtiTest = class extends TestNavigationMixin(TestViewMixin(TestProcessingMixin(TestBase))) {
629
+ // export class QtiTest extends TestLoaderMixin(TestNavigationMixin(TestViewMixin(TestBase))) {
630
+ /**
631
+ * Renders the component's template.
632
+ * Provides a default `<slot>` for content projection.
633
+ */
634
+ async connectedCallback() {
635
+ super.connectedCallback();
636
+ await this.updateComplete;
637
+ this.dispatchEvent(new CustomEvent("qti-test-connected", { detail: this }));
638
+ }
639
+ render() {
640
+ return html`<slot></slot>`;
641
+ }
642
+ };
643
+ QtiTest = __decorateClass([
644
+ customElement("qti-test")
645
+ ], QtiTest);
646
+
647
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-item-ref.ts
648
+ import { LitElement as LitElement2 } from "lit";
649
+ import { property as property3 } from "lit/decorators.js";
650
+ import { prepareTemplate } from "stampino";
651
+ var stringToBooleanConverter = {
652
+ fromAttribute(value) {
653
+ return value === "true";
654
+ },
655
+ toAttribute(value) {
656
+ return value ? "true" : "false";
657
+ }
658
+ };
659
+ var QtiAssessmentItemRef = class extends LitElement2 {
660
+ constructor() {
661
+ super(...arguments);
662
+ // @consume({ context: computedContext, subscribe: true })
663
+ // private computedContext: ComputedContext;
664
+ this.weigths = /* @__PURE__ */ new Map();
665
+ }
666
+ // the XMLDocument
667
+ createRenderRoot() {
668
+ return this;
669
+ }
670
+ get assessmentItem() {
671
+ return this.renderRoot?.querySelector("qti-assessment-item");
672
+ }
673
+ async connectedCallback() {
674
+ super.connectedCallback();
675
+ const templateElement = this.getRootNode().host.closest("qti-test").querySelector("template[item-ref]");
676
+ if (templateElement) this.myTemplate = prepareTemplate(templateElement);
677
+ await this.updateComplete;
678
+ this.dispatchEvent(
679
+ new CustomEvent("qti-assessment-item-ref-connected", {
680
+ bubbles: true,
681
+ composed: true,
682
+ detail: { identifier: this.identifier, href: this.href, category: this.category }
683
+ })
684
+ );
685
+ }
686
+ render() {
687
+ return this.myTemplate ? this.myTemplate({ xmlDoc: this.xmlDoc }) : this.xmlDoc;
688
+ }
689
+ };
690
+ __decorateClass([
691
+ property3({ type: String })
692
+ ], QtiAssessmentItemRef.prototype, "category", 2);
693
+ __decorateClass([
694
+ property3({ type: String })
695
+ ], QtiAssessmentItemRef.prototype, "identifier", 2);
696
+ __decorateClass([
697
+ property3({ type: Boolean, converter: stringToBooleanConverter })
698
+ ], QtiAssessmentItemRef.prototype, "required", 2);
699
+ __decorateClass([
700
+ property3({ type: Boolean, converter: stringToBooleanConverter })
701
+ ], QtiAssessmentItemRef.prototype, "fixed", 2);
702
+ __decorateClass([
703
+ property3({ type: String })
704
+ ], QtiAssessmentItemRef.prototype, "href", 2);
705
+ __decorateClass([
706
+ property3({ type: Object, attribute: false })
707
+ ], QtiAssessmentItemRef.prototype, "xmlDoc", 2);
708
+ if (!customElements.get("qti-assessment-item-ref")) {
709
+ customElements.define("qti-assessment-item-ref", QtiAssessmentItemRef);
710
+ }
711
+
712
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-section.ts
713
+ import { consume } from "@lit/context";
714
+ import { html as html2, LitElement as LitElement3 } from "lit";
715
+ import { property as property4 } from "lit/decorators.js";
716
+ var stringToBooleanConverter2 = {
717
+ fromAttribute(value) {
718
+ return value === "true";
719
+ },
720
+ toAttribute(value) {
721
+ return value ? "true" : "false";
722
+ }
723
+ };
724
+ var QtiAssessmentSection = class extends LitElement3 {
725
+ async connectedCallback() {
726
+ super.connectedCallback();
727
+ await this.updateComplete;
728
+ this.dispatchEvent(
729
+ new Event("qti-assessment-section-connected", {
730
+ bubbles: true,
731
+ composed: true
732
+ })
733
+ );
734
+ }
735
+ render() {
736
+ return html2`<slot name="qti-rubric-block"></slot><slot></slot>`;
737
+ }
738
+ };
739
+ __decorateClass([
740
+ property4({ type: String })
741
+ ], QtiAssessmentSection.prototype, "identifier", 2);
742
+ __decorateClass([
743
+ property4({ type: String })
744
+ ], QtiAssessmentSection.prototype, "required", 2);
745
+ __decorateClass([
746
+ property4({ type: Boolean, converter: stringToBooleanConverter2 })
747
+ ], QtiAssessmentSection.prototype, "fixed", 2);
748
+ __decorateClass([
749
+ property4({ type: String })
750
+ ], QtiAssessmentSection.prototype, "title", 2);
751
+ __decorateClass([
752
+ property4({ type: Boolean, converter: stringToBooleanConverter2 })
753
+ ], QtiAssessmentSection.prototype, "visible", 2);
754
+ __decorateClass([
755
+ property4({ type: Boolean, converter: stringToBooleanConverter2, attribute: "keep-together" })
756
+ ], QtiAssessmentSection.prototype, "keepTogether", 2);
757
+ __decorateClass([
758
+ consume({ context: testContext, subscribe: true })
759
+ ], QtiAssessmentSection.prototype, "_testContext", 2);
760
+ if (!customElements.get("qti-assessment-section")) {
761
+ customElements.define("qti-assessment-section", QtiAssessmentSection);
762
+ }
763
+
764
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-test.ts
765
+ import { consume as consume2 } from "@lit/context";
766
+ import { html as html3, LitElement as LitElement4 } from "lit";
767
+ import { customElement as customElement2, property as property5 } from "lit/decorators.js";
768
+ var QtiAssessmentTest = class extends LitElement4 {
769
+ async connectedCallback() {
770
+ super.connectedCallback();
771
+ await this.updateComplete;
772
+ this.dispatchEvent(
773
+ new CustomEvent("qti-assessment-test-connected", {
774
+ detail: this,
775
+ bubbles: true,
776
+ composed: true
777
+ })
778
+ );
779
+ }
780
+ render() {
781
+ return html3` <slot></slot>`;
782
+ }
783
+ };
784
+ __decorateClass([
785
+ property5({ type: String })
786
+ ], QtiAssessmentTest.prototype, "identifier", 2);
787
+ __decorateClass([
788
+ property5({ type: String })
789
+ ], QtiAssessmentTest.prototype, "title", 2);
790
+ __decorateClass([
791
+ consume2({ context: testContext, subscribe: true })
792
+ ], QtiAssessmentTest.prototype, "_testContext", 2);
793
+ QtiAssessmentTest = __decorateClass([
794
+ customElement2("qti-assessment-test")
795
+ ], QtiAssessmentTest);
796
+
797
+ // src/lib/qti-test/core/qti-assessment-test/qti-test-part.ts
798
+ import { html as html4, LitElement as LitElement5 } from "lit";
799
+ import { customElement as customElement3, property as property6 } from "lit/decorators.js";
800
+ var QtiTestPart = class extends LitElement5 {
801
+ constructor() {
802
+ super(...arguments);
803
+ this.identifier = "";
804
+ this.title = "";
805
+ this.class = "";
806
+ this.navigationMode = "nonlinear";
807
+ this.submissionMode = "individual";
808
+ }
809
+ async connectedCallback() {
810
+ super.connectedCallback();
811
+ await this.updateComplete;
812
+ this.dispatchEvent(
813
+ new Event("qti-test-part-connected", {
814
+ bubbles: true,
815
+ composed: true
816
+ })
817
+ );
818
+ }
819
+ render() {
820
+ return html4` <slot></slot>`;
821
+ }
822
+ };
823
+ __decorateClass([
824
+ property6({ type: String })
825
+ ], QtiTestPart.prototype, "identifier", 2);
826
+ __decorateClass([
827
+ property6({ type: String })
828
+ ], QtiTestPart.prototype, "title", 2);
829
+ __decorateClass([
830
+ property6({ type: String })
831
+ ], QtiTestPart.prototype, "class", 2);
832
+ __decorateClass([
833
+ property6({ type: String, attribute: "navigation-mode" })
834
+ ], QtiTestPart.prototype, "navigationMode", 2);
835
+ __decorateClass([
836
+ property6({ type: String, attribute: "submission-mode" })
837
+ ], QtiTestPart.prototype, "submissionMode", 2);
838
+ QtiTestPart = __decorateClass([
839
+ customElement3("qti-test-part")
840
+ ], QtiTestPart);
841
+ if (!customElements.get("qti-test-part")) {
842
+ customElements.define("qti-test-part", QtiTestPart);
843
+ }
844
+
845
+ // src/lib/qti-test/core/qti-assessment-test/qti-test-feedback.ts
846
+ import { customElement as customElement4 } from "lit/decorators.js";
847
+ import { css, html as html5 } from "lit";
848
+ var QtiTestFeedback = class extends QtiModalFeedback {
849
+ render() {
850
+ return html5``;
851
+ }
852
+ };
853
+ QtiTestFeedback.styles = css`
854
+ :host {
855
+ color: gray;
856
+ }
857
+ `;
858
+ QtiTestFeedback = __decorateClass([
859
+ customElement4("qti-test-feedback")
860
+ ], QtiTestFeedback);
861
+
862
+ export {
863
+ QtiTest,
864
+ QtiAssessmentItemRef,
865
+ QtiAssessmentSection,
866
+ QtiAssessmentTest,
867
+ QtiTestPart,
868
+ QtiTestFeedback
869
+ };
870
+ //# sourceMappingURL=chunk-6UZG2X74.js.map