@citolab/qti-components 7.0.6-next.0 → 7.0.6

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 (529) hide show
  1. package/cdn/chunk-4DFVJE2A.js +48 -0
  2. package/cdn/chunk-4I75QSIL.js +8 -0
  3. package/cdn/chunk-5WCOPF7O.js +73 -0
  4. package/cdn/chunk-66PERJA3.js +939 -0
  5. package/cdn/chunk-6WNSQ7U6.js +939 -0
  6. package/cdn/chunk-A536ZOJJ.js +43 -0
  7. package/cdn/chunk-AT2C24P4.js +8 -0
  8. package/cdn/chunk-BLKKKK6C.js +11 -0
  9. package/cdn/chunk-DC2R556M.js +5 -0
  10. package/cdn/chunk-GALSGMIP.js +5 -0
  11. package/cdn/chunk-IXSX4SJX.js +1 -0
  12. package/cdn/chunk-KYOTSBCX.js +1 -0
  13. package/cdn/chunk-L4TDHAKL.js +24 -0
  14. package/cdn/chunk-M6AATWPS.js +59 -0
  15. package/cdn/{chunk-L26FOTPN.js → chunk-MFWSHIPH.js} +1 -1
  16. package/cdn/chunk-QGKK4T2J.js +8 -0
  17. package/cdn/chunk-ROXN2HIJ.js +8 -0
  18. package/cdn/chunk-SQDSHH6N.js +3539 -0
  19. package/cdn/chunk-TJMODUN5.js +8 -0
  20. package/cdn/chunk-Z6SKK5ZX.js +8 -0
  21. package/cdn/chunks/chunk-3V6LA7B3.js +8 -0
  22. package/cdn/chunks/chunk-4ILXLVT5.js +3545 -0
  23. package/cdn/chunks/chunk-4PEUIMDK.js +8 -0
  24. package/cdn/{chunk-DLMFCDQX.js → chunks/chunk-4UJBK6JO.js} +1 -1
  25. package/cdn/chunks/chunk-4WXQYE2P.js +8 -0
  26. package/cdn/chunks/chunk-5BR5CJFH.js +24 -0
  27. package/cdn/chunks/chunk-5FCXUJAG.js +23 -0
  28. package/cdn/chunks/chunk-5GCSZ3CH.js +73 -0
  29. package/cdn/chunks/chunk-5P7CTN7Q.js +11 -0
  30. package/cdn/chunks/chunk-5X76K77R.js +8 -0
  31. package/cdn/chunks/chunk-6MCYE7P5.js +1 -0
  32. package/cdn/chunks/chunk-6S4CDN3T.js +43 -0
  33. package/cdn/chunks/chunk-76VGZJCP.js +934 -0
  34. package/cdn/chunks/chunk-7XYBFL7U.js +934 -0
  35. package/cdn/chunks/chunk-AJJJAZWM.js +1 -0
  36. package/cdn/chunks/chunk-ARHBUT6F.js +5 -0
  37. package/cdn/chunks/chunk-AUHO2E7V.js +934 -0
  38. package/cdn/chunks/chunk-CZ3CSGCE.js +934 -0
  39. package/cdn/chunks/chunk-D3GR6AUG.js +43 -0
  40. package/cdn/chunks/chunk-DZCKF45D.js +5 -0
  41. package/cdn/chunks/chunk-EFU4L43Q.js +8 -0
  42. package/cdn/chunks/chunk-FM5C34DM.js +934 -0
  43. package/cdn/chunks/chunk-FRS2J3OS.js +59 -0
  44. package/cdn/chunks/chunk-GMK2YRB2.js +934 -0
  45. package/cdn/chunks/chunk-H2V2RXUW.js +11 -0
  46. package/cdn/chunks/chunk-HUMOYGEM.js +43 -0
  47. package/cdn/chunks/chunk-IAP2CEE7.js +1 -0
  48. package/cdn/chunks/chunk-IMJOPCFR.js +1 -0
  49. package/cdn/chunks/chunk-IQZ7AOCQ.js +8 -0
  50. package/cdn/chunks/chunk-J3JSSCM6.js +5 -0
  51. package/cdn/chunks/chunk-KHLUVO6Y.js +8 -0
  52. package/cdn/chunks/chunk-KWPDTFYH.js +1 -0
  53. package/cdn/chunks/chunk-L4CUWIE6.js +17 -0
  54. package/cdn/chunks/chunk-LARBLB7K.js +8 -0
  55. package/cdn/chunks/chunk-LNFCEHB3.js +934 -0
  56. package/cdn/chunks/chunk-LZZB4VGC.js +48 -0
  57. package/cdn/chunks/chunk-MJMONWKB.js +3539 -0
  58. package/cdn/chunks/chunk-N5OHGRGG.js +8 -0
  59. package/cdn/chunks/chunk-NDHSIO2G.js +8 -0
  60. package/cdn/chunks/chunk-NRY3WHJD.js +5 -0
  61. package/cdn/chunks/chunk-PKT2SJQD.js +8 -0
  62. package/cdn/chunks/chunk-PPWEIKLT.js +1 -0
  63. package/cdn/chunks/chunk-PT523RSK.js +8 -0
  64. package/cdn/chunks/chunk-QD3NT5PG.js +934 -0
  65. package/cdn/chunks/chunk-QQCGUVEV.js +1 -0
  66. package/cdn/chunks/chunk-QTK4CPHP.js +8 -0
  67. package/cdn/chunks/chunk-QV6I5NVQ.js +8 -0
  68. package/cdn/chunks/chunk-R33OODNX.js +1 -0
  69. package/cdn/chunks/chunk-RIXTWE2H.js +8 -0
  70. package/cdn/chunks/chunk-ROZIP5LG.js +8 -0
  71. package/cdn/chunks/chunk-RPZVSBLM.js +8 -0
  72. package/cdn/chunks/chunk-RXKI3AO4.js +1 -0
  73. package/cdn/chunks/chunk-SXM25YH3.js +934 -0
  74. package/cdn/chunks/chunk-T2KKTMAT.js +934 -0
  75. package/cdn/chunks/chunk-TEYXRLTI.js +8 -0
  76. package/cdn/chunks/chunk-TQBDBMWL.js +5 -0
  77. package/cdn/chunks/chunk-TV3SPOLH.js +8 -0
  78. package/cdn/chunks/chunk-TVDTF6P6.js +934 -0
  79. package/cdn/chunks/chunk-U2TE6TOV.js +934 -0
  80. package/cdn/chunks/chunk-UJP4TGD3.js +1 -0
  81. package/cdn/chunks/chunk-W5Y3ZU2W.js +5 -0
  82. package/cdn/chunks/chunk-WPGJ54IP.js +1 -0
  83. package/cdn/chunks/chunk-X2KBNXRO.js +6 -0
  84. package/cdn/chunks/chunk-YHWMZAZD.js +43 -0
  85. package/cdn/chunks/chunk-YVZ742ID.js +934 -0
  86. package/cdn/chunks/chunk-YWH4TGMA.js +5 -0
  87. package/cdn/chunks/chunk-YXR6KSZI.js +11 -0
  88. package/cdn/exports/interaction.js +1 -0
  89. package/cdn/exports/item.context.js +1 -0
  90. package/cdn/exports/qti-assessment-item.context.js +1 -0
  91. package/cdn/exports/qti-condition-expression.js +1 -0
  92. package/cdn/exports/qti-expression.js +1 -0
  93. package/cdn/index.global.js +56 -107
  94. package/cdn/index.js +1 -1
  95. package/cdn/qti-components/index.global.js +1 -1
  96. package/cdn/qti-components/index.js +1 -1
  97. package/cdn/qti-item/components/index.js +3549 -1
  98. package/cdn/qti-item/components/item-container.js +3549 -1
  99. package/cdn/qti-item/core/index.global.js +149 -0
  100. package/cdn/qti-item/core/index.js +1 -0
  101. package/cdn/qti-item/index.js +3549 -1
  102. package/cdn/qti-item/qti-item.js +1 -1
  103. package/cdn/qti-loader/index.js +1 -1
  104. package/cdn/qti-test/components/index.global.js +1 -36
  105. package/cdn/qti-test/components/index.js +1 -1
  106. package/cdn/qti-test/components/styles.js +1 -1
  107. package/cdn/qti-test/components/test-component.abstract.js +1 -1
  108. package/cdn/qti-test/components/test-container.js +3549 -1
  109. package/cdn/qti-test/components/test-end-attempt.js +1 -0
  110. package/cdn/qti-test/components/test-item-link.js +1 -1
  111. package/cdn/qti-test/components/test-next.js +1 -1
  112. package/cdn/qti-test/components/test-next.spec.css +1 -0
  113. package/cdn/qti-test/components/test-next.spec.global.js +1 -234
  114. package/cdn/qti-test/components/test-next.spec.js +240 -240
  115. package/cdn/qti-test/components/test-paging-buttons-stamp.js +1 -1
  116. package/cdn/qti-test/components/test-prev.js +1 -1
  117. package/cdn/qti-test/components/test-show-correct-response.js +1 -0
  118. package/cdn/qti-test/components/test-view.js +1 -1
  119. package/cdn/qti-test/context/index.js +1 -1
  120. package/cdn/qti-test/context/test.context.js +1 -1
  121. package/cdn/qti-test/core/index.global.js +205 -0
  122. package/cdn/qti-test/core/index.js +1 -0
  123. package/cdn/qti-test/index.js +3598 -1
  124. package/cdn/qti-test/mixins/index.js +23 -1
  125. package/cdn/qti-test/mixins/test-loader.mixin.js +23 -1
  126. package/cdn/qti-test/mixins/test-navigation.mixin.js +1 -1
  127. package/cdn/qti-test/mixins/test-view.mixin.js +1 -1
  128. package/cdn/qti-test/qti-assessment-test/index.js +1 -1
  129. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.js +1 -1
  130. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.js +1 -1
  131. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.js +1 -1
  132. package/cdn/qti-test/qti-assessment-test/qti-test-part.js +1 -1
  133. package/cdn/qti-test/qti-test.js +23 -1
  134. package/cdn/qti-test/test-base.js +1 -1
  135. package/cdn/qti-transformers/index.js +1 -1
  136. package/dist/{chunk-3WLCQQN7.js → chunk-2CHF3TMY.js} +2 -2
  137. package/dist/chunk-2CHF3TMY.js.map +1 -0
  138. package/dist/chunk-2LWLX7WV.js +6307 -0
  139. package/dist/chunk-2LWLX7WV.js.map +1 -0
  140. package/dist/{chunk-VODOQFTJ.js → chunk-3G364JZC.js} +2 -2
  141. package/dist/chunk-6TUE644E.js +569 -0
  142. package/dist/chunk-6TUE644E.js.map +1 -0
  143. package/dist/{chunk-JDHBXMKF.js → chunk-6ZMD232X.js} +2 -2
  144. package/dist/{chunk-L7MBIXEX.js → chunk-AYRSHIHA.js} +4 -4
  145. package/dist/{chunk-GTYLWGDG.js → chunk-BN32D5J2.js} +4 -4
  146. package/dist/{chunk-TXRSYXG3.js → chunk-CJRXRBRQ.js} +4 -4
  147. package/dist/{chunk-ENVUIH2A.js → chunk-GPJ6WTE5.js} +5 -5
  148. package/dist/chunk-GPJ6WTE5.js.map +1 -0
  149. package/dist/chunk-KAUHKHPH.js +50 -0
  150. package/dist/chunk-KAUHKHPH.js.map +1 -0
  151. package/dist/chunk-MAC76UNI.js +1 -0
  152. package/dist/{chunk-XNBWN7N2.js → chunk-QYN5S4EM.js} +20 -7
  153. package/dist/chunk-QYN5S4EM.js.map +1 -0
  154. package/dist/chunk-UJTJIU3C.js +43 -0
  155. package/dist/chunk-UJTJIU3C.js.map +1 -0
  156. package/dist/chunk-XVQZ5JI5.js +50 -0
  157. package/dist/chunk-XVQZ5JI5.js.map +1 -0
  158. package/dist/{chunk-EUCEENQQ.js → chunk-XW3PQRKW.js} +100 -47
  159. package/dist/chunk-XW3PQRKW.js.map +1 -0
  160. package/dist/{chunk-R4HSV7U7.js → chunk-YQ7EXOAK.js} +2 -2
  161. package/dist/chunk-YQ7EXOAK.js.map +1 -0
  162. package/dist/chunks/chunk-2V6LQV2K.js +50 -0
  163. package/dist/chunks/chunk-2V6LQV2K.js.map +1 -0
  164. package/dist/chunks/chunk-3EU75IUF.js +118 -0
  165. package/dist/chunks/chunk-3EU75IUF.js.map +1 -0
  166. package/dist/chunks/chunk-3QQFMVDS.js +118 -0
  167. package/dist/chunks/chunk-3QQFMVDS.js.map +1 -0
  168. package/dist/chunks/chunk-4GNVYCBN.js +627 -0
  169. package/dist/chunks/chunk-4GNVYCBN.js.map +1 -0
  170. package/dist/chunks/chunk-4MQV5IRV.js +59 -0
  171. package/dist/chunks/chunk-4MQV5IRV.js.map +1 -0
  172. package/dist/chunks/chunk-4O5F7WV7.js +30 -0
  173. package/dist/chunks/chunk-4O5F7WV7.js.map +1 -0
  174. package/dist/chunks/chunk-4WVLWWYJ.js +50 -0
  175. package/dist/chunks/chunk-4WVLWWYJ.js.map +1 -0
  176. package/dist/chunks/chunk-5KVGRLYT.js +10 -0
  177. package/dist/chunks/chunk-5KVGRLYT.js.map +1 -0
  178. package/dist/chunks/chunk-5PCD2B62.js +6091 -0
  179. package/dist/chunks/chunk-5PCD2B62.js.map +1 -0
  180. package/dist/chunks/chunk-5RTLOB3Q.js +59 -0
  181. package/dist/chunks/chunk-5RTLOB3Q.js.map +1 -0
  182. package/dist/chunks/chunk-6JXR63MH.js +50 -0
  183. package/dist/chunks/chunk-6JXR63MH.js.map +1 -0
  184. package/dist/chunks/chunk-6PAEJQSQ.js +6058 -0
  185. package/dist/chunks/chunk-6PAEJQSQ.js.map +1 -0
  186. package/dist/chunks/chunk-6QT4LIPL.js +623 -0
  187. package/dist/chunks/chunk-6QT4LIPL.js.map +1 -0
  188. package/dist/chunks/chunk-7QMCKYDR.js +43 -0
  189. package/dist/chunks/chunk-7QMCKYDR.js.map +1 -0
  190. package/dist/chunks/chunk-A24F75DB.js +72 -0
  191. package/dist/chunks/chunk-A24F75DB.js.map +1 -0
  192. package/dist/chunks/chunk-AUWATZ65.js +10 -0
  193. package/dist/chunks/chunk-AUWATZ65.js.map +1 -0
  194. package/dist/chunks/chunk-AXTEKPP5.js +6084 -0
  195. package/dist/chunks/chunk-AXTEKPP5.js.map +1 -0
  196. package/dist/chunks/chunk-B6MJCAOF.js +6063 -0
  197. package/dist/chunks/chunk-B6MJCAOF.js.map +1 -0
  198. package/dist/chunks/chunk-BJ2JLJIJ.js +623 -0
  199. package/dist/chunks/chunk-BJ2JLJIJ.js.map +1 -0
  200. package/dist/chunks/chunk-BPHQLJWE.js +102 -0
  201. package/dist/chunks/chunk-BPHQLJWE.js.map +1 -0
  202. package/dist/chunks/chunk-CD3E4M5Y.js +107 -0
  203. package/dist/chunks/chunk-CD3E4M5Y.js.map +1 -0
  204. package/dist/chunks/chunk-CEXAR7BF.js +52 -0
  205. package/dist/chunks/chunk-CEXAR7BF.js.map +1 -0
  206. package/dist/chunks/chunk-CWYAQA25.js +6067 -0
  207. package/dist/chunks/chunk-CWYAQA25.js.map +1 -0
  208. package/dist/chunks/chunk-D3QX5N57.js +6117 -0
  209. package/dist/chunks/chunk-D3QX5N57.js.map +1 -0
  210. package/dist/{chunk-4CSM2PCC.js → chunks/chunk-D3RGDWKP.js} +1 -1
  211. package/dist/chunks/chunk-D3RGDWKP.js.map +1 -0
  212. package/dist/chunks/chunk-DLUJN2FW.js +22 -0
  213. package/dist/chunks/chunk-DLUJN2FW.js.map +1 -0
  214. package/dist/chunks/chunk-DNHDFXTV.js +59 -0
  215. package/dist/chunks/chunk-DNHDFXTV.js.map +1 -0
  216. package/dist/chunks/chunk-E4TWZ2DL.js +6088 -0
  217. package/dist/chunks/chunk-E4TWZ2DL.js.map +1 -0
  218. package/dist/chunks/chunk-ELDMXTUQ.js +31 -0
  219. package/dist/chunks/chunk-ELDMXTUQ.js.map +1 -0
  220. package/dist/{chunk-IAFQ5ZPI.js → chunks/chunk-FV7HWK54.js} +2 -2
  221. package/dist/chunks/chunk-FV7HWK54.js.map +1 -0
  222. package/dist/chunks/chunk-GQ5P3NWC.js +46 -0
  223. package/dist/chunks/chunk-GQ5P3NWC.js.map +1 -0
  224. package/dist/chunks/chunk-GSWZT6N2.js +50 -0
  225. package/dist/chunks/chunk-GSWZT6N2.js.map +1 -0
  226. package/dist/chunks/chunk-H2JE6IVU.js +15 -0
  227. package/dist/chunks/chunk-HHVRU3AJ.js +107 -0
  228. package/dist/chunks/chunk-HHVRU3AJ.js.map +1 -0
  229. package/dist/chunks/chunk-HOTNM5DT.js +1 -0
  230. package/dist/chunks/chunk-IWG66KQQ.js +107 -0
  231. package/dist/chunks/chunk-IWG66KQQ.js.map +1 -0
  232. package/{cdn/chunk-Y63VPWCG.js → dist/chunks/chunk-J2SHENRN.js} +8 -2
  233. package/dist/chunks/chunk-J2SHENRN.js.map +1 -0
  234. package/dist/chunks/chunk-K6ATVWMP.js +6091 -0
  235. package/dist/chunks/chunk-K6ATVWMP.js.map +1 -0
  236. package/dist/chunks/chunk-KOEILLVS.js +8 -0
  237. package/dist/chunks/chunk-KOEILLVS.js.map +1 -0
  238. package/dist/chunks/chunk-KYAIMBP5.js +78 -0
  239. package/dist/chunks/chunk-KYAIMBP5.js.map +1 -0
  240. package/dist/chunks/chunk-LNISKMIL.js +6063 -0
  241. package/dist/chunks/chunk-LNISKMIL.js.map +1 -0
  242. package/dist/chunks/chunk-LNKJEW5E.js +627 -0
  243. package/dist/chunks/chunk-LNKJEW5E.js.map +1 -0
  244. package/dist/chunks/chunk-LXJA3VP2.js +72 -0
  245. package/dist/chunks/chunk-LXJA3VP2.js.map +1 -0
  246. package/dist/chunks/chunk-MLT7V47R.js +100 -0
  247. package/dist/chunks/chunk-MLT7V47R.js.map +1 -0
  248. package/dist/chunks/chunk-N5FPZNMX.js +43 -0
  249. package/dist/chunks/chunk-N5FPZNMX.js.map +1 -0
  250. package/dist/chunks/chunk-NHA53UTY.js +52 -0
  251. package/dist/chunks/chunk-NHA53UTY.js.map +1 -0
  252. package/dist/chunks/chunk-NZQKGIJP.js +3535 -0
  253. package/dist/chunks/chunk-NZQKGIJP.js.map +1 -0
  254. package/dist/chunks/chunk-O6WEZVEM.js +43 -0
  255. package/dist/chunks/chunk-O6WEZVEM.js.map +1 -0
  256. package/dist/chunks/chunk-OIRWOI3E.js +72 -0
  257. package/dist/chunks/chunk-OIRWOI3E.js.map +1 -0
  258. package/dist/chunks/chunk-PWOY6REC.js +6064 -0
  259. package/dist/chunks/chunk-PWOY6REC.js.map +1 -0
  260. package/dist/chunks/chunk-QJELKGWM.js +6061 -0
  261. package/dist/chunks/chunk-QJELKGWM.js.map +1 -0
  262. package/dist/chunks/chunk-QUB54PXZ.js +50 -0
  263. package/dist/chunks/chunk-QUB54PXZ.js.map +1 -0
  264. package/dist/chunks/chunk-RX3BRYYI.js +59 -0
  265. package/dist/chunks/chunk-RX3BRYYI.js.map +1 -0
  266. package/dist/chunks/chunk-UEEMM6H2.js +6090 -0
  267. package/dist/chunks/chunk-UEEMM6H2.js.map +1 -0
  268. package/dist/chunks/chunk-UFYWCLXF.js +10 -0
  269. package/dist/chunks/chunk-UFYWCLXF.js.map +1 -0
  270. package/dist/chunks/chunk-UN2IFSGC.js +1 -0
  271. package/dist/chunks/chunk-VAPB5TN4.js +46 -0
  272. package/dist/chunks/chunk-VAPB5TN4.js.map +1 -0
  273. package/dist/chunks/chunk-VBF3GCZK.js +50 -0
  274. package/dist/chunks/chunk-VBF3GCZK.js.map +1 -0
  275. package/dist/chunks/chunk-W4272Q5U.js +46 -0
  276. package/dist/chunks/chunk-W4272Q5U.js.map +1 -0
  277. package/dist/chunks/chunk-WWN5AD6V.js +81 -0
  278. package/dist/chunks/chunk-WWN5AD6V.js.map +1 -0
  279. package/dist/chunks/chunk-X226BX2U.js +78 -0
  280. package/dist/chunks/chunk-X226BX2U.js.map +1 -0
  281. package/dist/chunks/chunk-XCHS3RTZ.js +107 -0
  282. package/dist/chunks/chunk-XCHS3RTZ.js.map +1 -0
  283. package/dist/chunks/chunk-XDMSEAYC.js +294 -0
  284. package/dist/chunks/chunk-XDMSEAYC.js.map +1 -0
  285. package/dist/chunks/chunk-XSI6FXGD.js +19 -0
  286. package/dist/chunks/chunk-XSI6FXGD.js.map +1 -0
  287. package/dist/chunks/chunk-YFC3BVN2.js +78 -0
  288. package/dist/chunks/chunk-YFC3BVN2.js.map +1 -0
  289. package/dist/chunks/chunk-YOXF6JPS.js +623 -0
  290. package/dist/chunks/chunk-YOXF6JPS.js.map +1 -0
  291. package/dist/chunks/chunk-YQB6YLNW.js +78 -0
  292. package/dist/chunks/chunk-YQB6YLNW.js.map +1 -0
  293. package/dist/chunks/chunk-Z5THRO6Z.js +46 -0
  294. package/dist/chunks/chunk-Z5THRO6Z.js.map +1 -0
  295. package/dist/chunks/chunk-ZHAJ3CMP.js +6091 -0
  296. package/dist/chunks/chunk-ZHAJ3CMP.js.map +1 -0
  297. package/dist/chunks/chunk-ZPNJ2HP5.js +71 -0
  298. package/dist/chunks/chunk-ZPNJ2HP5.js.map +1 -0
  299. package/dist/chunks/chunk-ZQXZ6PK7.js +649 -0
  300. package/dist/chunks/chunk-ZQXZ6PK7.js.map +1 -0
  301. package/dist/custom-element-eslint-rules.js +337 -0
  302. package/dist/custom-elements.json +27158 -0
  303. package/dist/exports/expression-result.d.ts +19 -0
  304. package/dist/exports/expression-result.js +1 -0
  305. package/dist/exports/interaction.d.ts +23 -0
  306. package/dist/exports/interaction.interface.d.ts +13 -0
  307. package/dist/exports/interaction.interface.js +1 -0
  308. package/dist/exports/interaction.js +8 -0
  309. package/dist/exports/item.context.d.ts +12 -0
  310. package/dist/exports/item.context.js +8 -0
  311. package/dist/exports/qti-assessment-item.context.d.ts +10 -0
  312. package/dist/exports/qti-assessment-item.context.js +8 -0
  313. package/dist/exports/qti-assessment-item.context.js.map +1 -0
  314. package/dist/exports/qti-condition-expression.d.ts +13 -0
  315. package/dist/exports/qti-condition-expression.js +10 -0
  316. package/dist/exports/qti-condition-expression.js.map +1 -0
  317. package/dist/exports/qti-expression.d.ts +21 -0
  318. package/dist/exports/qti-expression.js +9 -0
  319. package/dist/exports/qti-expression.js.map +1 -0
  320. package/dist/exports/variables.d.ts +3 -0
  321. package/dist/exports/variables.js +1 -0
  322. package/dist/exports/variables.js.map +1 -0
  323. package/dist/index.d.ts +14 -8
  324. package/dist/index.js +41 -63
  325. package/dist/item.css +8 -2
  326. package/dist/loader/index.d.ts +20 -0
  327. package/dist/loader/index.js +310 -0
  328. package/dist/loader/index.js.map +1 -0
  329. package/dist/qti-components/index.cjs +6773 -0
  330. package/dist/qti-components/index.cjs.map +1 -0
  331. package/dist/qti-components/index.d.cts +150 -0
  332. package/dist/qti-components/index.d.ts +36 -9
  333. package/dist/qti-components/index.js +10 -17
  334. package/dist/qti-components-jsx.d.ts +360 -639
  335. package/dist/qti-item/components/index.js +3852 -8
  336. package/dist/qti-item/components/index.js.map +1 -1
  337. package/dist/qti-item/components/item-container.js +3852 -7
  338. package/dist/qti-item/components/item-container.js.map +1 -1
  339. package/dist/qti-item/core/index.d.ts +61 -0
  340. package/dist/qti-item/core/index.js +13 -0
  341. package/dist/qti-item/core/index.js.map +1 -0
  342. package/dist/qti-item/index.cjs +89 -0
  343. package/dist/qti-item/index.cjs.map +1 -0
  344. package/dist/qti-item/index.d.cts +24 -0
  345. package/dist/qti-item/index.js +3864 -12
  346. package/dist/qti-item/index.js.map +1 -1
  347. package/dist/qti-item/qti-item.js +22 -4
  348. package/dist/qti-item/qti-item.js.map +1 -1
  349. package/dist/qti-loader/index.cjs +332 -0
  350. package/dist/qti-loader/index.cjs.map +1 -0
  351. package/dist/qti-loader/index.d.cts +20 -0
  352. package/dist/qti-loader/index.d.ts +7 -1
  353. package/dist/qti-loader/index.js +3 -3
  354. package/dist/qti-response-declaration-DAeBp8HH.d.ts +1008 -0
  355. package/dist/qti-response-declaration-Di9CsqiJ.d.ts +1012 -0
  356. package/dist/qti-response-declaration-ucAqd0qK.d.ts +1034 -0
  357. package/dist/qti-simple-choice-3M44uWiN.d.ts +1153 -0
  358. package/dist/qti-simple-choice-B5GnzbqW.d.ts +1080 -0
  359. package/dist/qti-simple-choice-BOLF9wXz.d.ts +1170 -0
  360. package/dist/qti-simple-choice-BeixIkA0.d.ts +1088 -0
  361. package/dist/qti-simple-choice-BiEjEO6s.d.ts +1152 -0
  362. package/dist/qti-simple-choice-Bo_ikO6H.d.ts +1198 -0
  363. package/dist/qti-simple-choice-C0CcrtK5.d.ts +1169 -0
  364. package/dist/qti-simple-choice-Cgh1-Jbr.d.cts +1185 -0
  365. package/dist/qti-simple-choice-Cgh1-Jbr.d.ts +1185 -0
  366. package/dist/qti-simple-choice-Cn5y-Ta8.d.ts +1158 -0
  367. package/dist/qti-simple-choice-D0GiMrqD.d.ts +1168 -0
  368. package/dist/qti-simple-choice-R_LxBTp8.d.ts +1158 -0
  369. package/dist/qti-simple-choice-hAIyfF0z.d.ts +1114 -0
  370. package/dist/qti-simple-choice-o4rje1RA.d.ts +1176 -0
  371. package/dist/qti-simple-choice-v2GxpPNh.d.ts +1181 -0
  372. package/dist/qti-test/components/index.d.ts +10 -4
  373. package/dist/qti-test/components/index.js +19 -18
  374. package/dist/qti-test/components/styles.js +2 -2
  375. package/dist/qti-test/components/test-component.abstract.d.ts +8 -5
  376. package/dist/qti-test/components/test-component.abstract.js +5 -6
  377. package/dist/qti-test/components/test-container.js +3778 -7
  378. package/dist/qti-test/components/test-container.js.map +1 -1
  379. package/dist/qti-test/components/test-end-attempt.d.ts +26 -0
  380. package/dist/qti-test/components/test-end-attempt.js +13 -0
  381. package/dist/qti-test/components/test-end-attempt.js.map +1 -0
  382. package/dist/qti-test/components/test-item-link.d.ts +9 -3
  383. package/dist/qti-test/components/test-item-link.js +7 -8
  384. package/dist/qti-test/components/test-next.d.ts +9 -3
  385. package/dist/qti-test/components/test-next.js +7 -8
  386. package/dist/qti-test/components/test-next.spec.css +2481 -0
  387. package/dist/qti-test/components/test-next.spec.css.map +1 -0
  388. package/dist/qti-test/components/test-next.spec.d.ts +4 -7
  389. package/dist/qti-test/components/test-next.spec.js +13 -32
  390. package/dist/qti-test/components/test-next.spec.js.map +1 -1
  391. package/dist/qti-test/components/test-paging-buttons-stamp.d.ts +8 -3
  392. package/dist/qti-test/components/test-paging-buttons-stamp.js +6 -7
  393. package/dist/qti-test/components/test-prev.d.ts +9 -3
  394. package/dist/qti-test/components/test-prev.js +7 -8
  395. package/dist/qti-test/components/test-show-correct-response.d.ts +26 -0
  396. package/dist/qti-test/components/test-show-correct-response.js +13 -0
  397. package/dist/qti-test/components/test-show-correct-response.js.map +1 -0
  398. package/dist/qti-test/components/test-view.d.ts +9 -3
  399. package/dist/qti-test/components/test-view.js +6 -7
  400. package/dist/qti-test/context/index.js +4 -6
  401. package/dist/qti-test/context/index.js.map +1 -1
  402. package/dist/qti-test/context/test.context.js +4 -5
  403. package/dist/qti-test/context/test.context.js.map +1 -1
  404. package/dist/qti-test/core/index.d.ts +132 -0
  405. package/dist/qti-test/core/index.js +27 -0
  406. package/dist/qti-test/core/index.js.map +1 -0
  407. package/dist/qti-test/index.cjs +4823 -0
  408. package/dist/qti-test/index.cjs.map +1 -0
  409. package/dist/qti-test/index.d.cts +304 -0
  410. package/dist/qti-test/index.js +4729 -55
  411. package/dist/qti-test/index.js.map +1 -1
  412. package/dist/qti-test/mixins/index.js +344 -12
  413. package/dist/qti-test/mixins/index.js.map +1 -1
  414. package/dist/qti-test/mixins/test-loader.mixin.js +236 -5
  415. package/dist/qti-test/mixins/test-loader.mixin.js.map +1 -1
  416. package/dist/qti-test/mixins/test-navigation.mixin.js +60 -4
  417. package/dist/qti-test/mixins/test-navigation.mixin.js.map +1 -1
  418. package/dist/qti-test/mixins/test-view.mixin.js +46 -4
  419. package/dist/qti-test/mixins/test-view.mixin.js.map +1 -1
  420. package/dist/qti-test/qti-assessment-test/index.js +214 -16
  421. package/dist/qti-test/qti-assessment-test/index.js.map +1 -1
  422. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js +81 -6
  423. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js.map +1 -1
  424. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js +69 -6
  425. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js.map +1 -1
  426. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js +50 -6
  427. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js.map +1 -1
  428. package/dist/qti-test/qti-assessment-test/qti-test-part.js +58 -4
  429. package/dist/qti-test/qti-assessment-test/qti-test-part.js.map +1 -1
  430. package/dist/qti-test/qti-test.js +496 -12
  431. package/dist/qti-test/qti-test.js.map +1 -1
  432. package/dist/qti-test/test-base.js +133 -6
  433. package/dist/qti-test/test-base.js.map +1 -1
  434. package/dist/qti-transformers/index.cjs +316 -0
  435. package/dist/qti-transformers/index.cjs.map +1 -0
  436. package/dist/qti-transformers/index.d.cts +75 -0
  437. package/dist/qti-transformers/index.js +2 -2
  438. package/dist/test.context-Bx-606B3.d.ts +99 -0
  439. package/dist/test.context-C2LBA3w4.d.ts +101 -0
  440. package/dist/test.context-CB5V4xJz.d.ts +99 -0
  441. package/dist/test.context-CaENAJNk.d.ts +101 -0
  442. package/dist/test.context-CmsDQ8k2.d.ts +99 -0
  443. package/dist/transformers/index.d.ts +76 -0
  444. package/dist/transformers/index.js +293 -0
  445. package/dist/transformers/index.js.map +1 -0
  446. package/dist/variables-cO3DzqJy.d.ts +33 -0
  447. package/dist/vscode.html-custom-data.json +247 -295
  448. package/package.json +83 -76
  449. package/cdn/chunk-3DWLPGTE.js +0 -1
  450. package/cdn/chunk-7BKWTY4S.js +0 -1
  451. package/cdn/chunk-7CQ4ETXL.js +0 -1
  452. package/cdn/chunk-7ENNZNJ4.js +0 -1
  453. package/cdn/chunk-7LGM2TQA.js +0 -1
  454. package/cdn/chunk-DPR6SGCZ.js +0 -1
  455. package/cdn/chunk-EQGXFSYL.js +0 -8
  456. package/cdn/chunk-F5VW77RE.js +0 -1
  457. package/cdn/chunk-FNVXN5CO.js +0 -1
  458. package/cdn/chunk-GBB54IPA.js +0 -8
  459. package/cdn/chunk-IV7UP34N.js +0 -5
  460. package/cdn/chunk-JNT54FPI.js +0 -1
  461. package/cdn/chunk-JS4S7ZI7.js +0 -1
  462. package/cdn/chunk-POT65ZY7.js +0 -1
  463. package/cdn/chunk-Q7PVZA43.js +0 -5
  464. package/cdn/chunk-QJPHXAUE.js +0 -1
  465. package/cdn/chunk-QP57JHGY.js +0 -11
  466. package/cdn/chunk-RB6CONZW.js +0 -3
  467. package/cdn/chunk-RSRX5JYB.js +0 -1
  468. package/cdn/chunk-TG6AE3DB.js +0 -0
  469. package/cdn/chunk-V6YPUNZC.js +0 -0
  470. package/cdn/chunk-W7X6GNEX.js +0 -902
  471. package/cdn/chunk-ZEX7TYC7.js +0 -8
  472. package/dist/chunk-37X6KZO3.js +0 -1
  473. package/dist/chunk-3WLCQQN7.js.map +0 -1
  474. package/dist/chunk-3YVIK6LO.js +0 -1
  475. package/dist/chunk-4CSM2PCC.js.map +0 -1
  476. package/dist/chunk-7A6KCSAU.js +0 -44
  477. package/dist/chunk-7A6KCSAU.js.map +0 -1
  478. package/dist/chunk-ENVUIH2A.js.map +0 -1
  479. package/dist/chunk-ENZVY5X6.js +0 -20
  480. package/dist/chunk-ENZVY5X6.js.map +0 -1
  481. package/dist/chunk-EUCEENQQ.js.map +0 -1
  482. package/dist/chunk-FNFNAV3G.js +0 -56
  483. package/dist/chunk-FNFNAV3G.js.map +0 -1
  484. package/dist/chunk-GSFDTSLL.js +0 -1
  485. package/dist/chunk-IAFQ5ZPI.js.map +0 -1
  486. package/dist/chunk-LYFMLDNV.js +0 -1
  487. package/dist/chunk-NNPTSZGC.js +0 -1
  488. package/dist/chunk-NQM35JUI.js +0 -1
  489. package/dist/chunk-ODUHPWTX.js +0 -65
  490. package/dist/chunk-ODUHPWTX.js.map +0 -1
  491. package/dist/chunk-OGHHCP23.js +0 -36
  492. package/dist/chunk-OGHHCP23.js.map +0 -1
  493. package/dist/chunk-OQZW2B47.js +0 -75
  494. package/dist/chunk-OQZW2B47.js.map +0 -1
  495. package/dist/chunk-OXDOQVRL.js +0 -63
  496. package/dist/chunk-OXDOQVRL.js.map +0 -1
  497. package/dist/chunk-PBSMP6VF.js +0 -128
  498. package/dist/chunk-PBSMP6VF.js.map +0 -1
  499. package/dist/chunk-Q7OPFS4A.js +0 -1
  500. package/dist/chunk-R4HSV7U7.js.map +0 -1
  501. package/dist/chunk-U3RLYKL5.js +0 -51
  502. package/dist/chunk-U3RLYKL5.js.map +0 -1
  503. package/dist/chunk-VW7VIQBE.js +0 -34
  504. package/dist/chunk-VW7VIQBE.js.map +0 -1
  505. package/dist/chunk-X4ZBUCOD.js +0 -94
  506. package/dist/chunk-X4ZBUCOD.js.map +0 -1
  507. package/dist/chunk-XFHB6KQW.js +0 -1
  508. package/dist/chunk-XNBWN7N2.js.map +0 -1
  509. /package/cdn/{chunk-CYJMNT76.js → chunk-22HAPLRD.js} +0 -0
  510. /package/cdn/{chunk-GB7DLBFM.js → chunks/chunk-3GO57DNP.js} +0 -0
  511. /package/cdn/{chunk-H4A34YRT.js → chunks/chunk-6PW2L463.js} +0 -0
  512. /package/cdn/{chunk-GPDDPZFH.js → chunks/chunk-EHK76KRT.js} +0 -0
  513. /package/cdn/{chunk-25BMUTLC.js → chunks/chunk-XUJ7TXHW.js} +0 -0
  514. /package/cdn/{chunk-ITXNNGVQ.js → exports/expression-result.js} +0 -0
  515. /package/cdn/{chunk-IZZ36JQV.js → exports/interaction.interface.js} +0 -0
  516. /package/cdn/{chunk-LA7TBIPQ.js → exports/variables.js} +0 -0
  517. /package/dist/{chunk-VODOQFTJ.js.map → chunk-3G364JZC.js.map} +0 -0
  518. /package/dist/{chunk-JDHBXMKF.js.map → chunk-6ZMD232X.js.map} +0 -0
  519. /package/dist/{chunk-L7MBIXEX.js.map → chunk-AYRSHIHA.js.map} +0 -0
  520. /package/dist/{chunk-GTYLWGDG.js.map → chunk-BN32D5J2.js.map} +0 -0
  521. /package/dist/{chunk-TXRSYXG3.js.map → chunk-CJRXRBRQ.js.map} +0 -0
  522. /package/dist/{chunk-37X6KZO3.js.map → chunk-MAC76UNI.js.map} +0 -0
  523. /package/dist/{chunk-3YVIK6LO.js.map → chunks/chunk-H2JE6IVU.js.map} +0 -0
  524. /package/dist/{chunk-GSFDTSLL.js.map → chunks/chunk-HOTNM5DT.js.map} +0 -0
  525. /package/dist/{chunk-LYFMLDNV.js.map → chunks/chunk-UN2IFSGC.js.map} +0 -0
  526. /package/dist/{chunk-NNPTSZGC.js.map → exports/expression-result.js.map} +0 -0
  527. /package/dist/{chunk-NQM35JUI.js.map → exports/interaction.interface.js.map} +0 -0
  528. /package/dist/{chunk-Q7OPFS4A.js.map → exports/interaction.js.map} +0 -0
  529. /package/dist/{chunk-XFHB6KQW.js.map → exports/item.context.js.map} +0 -0
@@ -0,0 +1,623 @@
1
+ import {
2
+ item_default
3
+ } from "./chunk-NZQKGIJP.js";
4
+ import {
5
+ qtiTransformItem,
6
+ qtiTransformTest
7
+ } from "./chunk-XDMSEAYC.js";
8
+ import {
9
+ testContext,
10
+ testElement
11
+ } from "./chunk-AUWATZ65.js";
12
+ import {
13
+ watch
14
+ } from "./chunk-ELDMXTUQ.js";
15
+ import {
16
+ __decorateClass
17
+ } from "./chunk-H2JE6IVU.js";
18
+
19
+ // src/lib/qti-test/core/components/test-container.ts
20
+ import { LitElement, html } from "lit";
21
+ import { customElement, property, state } from "lit/decorators.js";
22
+ import { until } from "lit/directives/until.js";
23
+ var TestContainer = class extends LitElement {
24
+ constructor() {
25
+ super(...arguments);
26
+ this.testURL = null;
27
+ this.testDoc = null;
28
+ this.testXML = null;
29
+ /** Template content if provided */
30
+ this.templateContent = null;
31
+ }
32
+ async handleTestURLChange() {
33
+ if (!this.testURL) return;
34
+ try {
35
+ const api = await qtiTransformTest().load(this.testURL);
36
+ this.testDoc = api.htmlDoc();
37
+ } catch (error) {
38
+ console.error("Error loading or parsing XML:", error);
39
+ }
40
+ }
41
+ handleTestXMLChange() {
42
+ if (!this.testXML) return;
43
+ try {
44
+ this.testDoc = qtiTransformTest().parse(this.testXML).htmlDoc();
45
+ } catch (error) {
46
+ console.error("Error parsing XML:", error);
47
+ }
48
+ }
49
+ async connectedCallback() {
50
+ super.connectedCallback();
51
+ this.initializeTemplateContent();
52
+ this.applyStyles();
53
+ if (this.testURL) {
54
+ this.handleTestURLChange();
55
+ }
56
+ if (this.testXML) {
57
+ this.handleTestXMLChange();
58
+ }
59
+ }
60
+ initializeTemplateContent() {
61
+ const template = this.querySelector("template");
62
+ this.templateContent = template ? template.content : html``;
63
+ }
64
+ applyStyles() {
65
+ const sheet = new CSSStyleSheet();
66
+ sheet.replaceSync(item_default);
67
+ this.shadowRoot.adoptedStyleSheets = [sheet];
68
+ }
69
+ render() {
70
+ return html`
71
+ ${this.templateContent}
72
+ <slot></slot>
73
+ ${until(this.testDoc, html`<span>Loading...</span>`)}
74
+ `;
75
+ }
76
+ };
77
+ __decorateClass([
78
+ property({ type: String, attribute: "test-url" })
79
+ ], TestContainer.prototype, "testURL", 2);
80
+ __decorateClass([
81
+ state()
82
+ ], TestContainer.prototype, "testDoc", 2);
83
+ __decorateClass([
84
+ state()
85
+ ], TestContainer.prototype, "testXML", 2);
86
+ __decorateClass([
87
+ watch("testURL", { waitUntilFirstUpdate: true })
88
+ ], TestContainer.prototype, "handleTestURLChange", 1);
89
+ __decorateClass([
90
+ watch("testXML", { waitUntilFirstUpdate: true })
91
+ ], TestContainer.prototype, "handleTestXMLChange", 1);
92
+ TestContainer = __decorateClass([
93
+ customElement("test-container")
94
+ ], TestContainer);
95
+
96
+ // src/lib/qti-test/core/qti-test.ts
97
+ import { html as html2 } from "lit";
98
+ import { customElement as customElement2 } from "lit/decorators.js";
99
+
100
+ // src/lib/qti-test/core/mixins/test-loader.mixin.ts
101
+ var TestLoaderMixin = (superClass) => {
102
+ class TestLoaderClass extends superClass {
103
+ // private testURL = '';
104
+ constructor(...args) {
105
+ super(...args);
106
+ this.addEventListener("qti-assessment-test-connected", () => {
107
+ });
108
+ this.addEventListener("qti-load-item-request", ({ detail }) => {
109
+ detail.promise = (async () => {
110
+ const api = await qtiTransformItem().load(
111
+ `${detail.href}`,
112
+ detail.cancelPreviousRequest
113
+ );
114
+ return api.htmlDoc();
115
+ })();
116
+ });
117
+ this.addEventListener("qti-interaction-changed", (_e) => {
118
+ });
119
+ this.addEventListener("qti-outcome-changed", () => {
120
+ });
121
+ }
122
+ }
123
+ return TestLoaderClass;
124
+ };
125
+
126
+ // src/lib/qti-test/core/mixins/test-navigation.mixin.ts
127
+ var TestNavigationMixin = (superClass) => {
128
+ class TestNavigationClass extends superClass {
129
+ constructor(...args) {
130
+ super(...args);
131
+ this.addEventListener("qti-request-test-item", ({ detail: navItemId }) => {
132
+ if (!navItemId) return;
133
+ this._clearLoadedItems();
134
+ const itemRefEl = this.testElement.querySelector(
135
+ `qti-assessment-item-ref[identifier="${navItemId}"]`
136
+ );
137
+ const promise = this._loadItemRequest(itemRefEl.href, false);
138
+ const navPartId = itemRefEl.closest("qti-test-part").identifier;
139
+ const navSectionId = itemRefEl.closest("qti-assessment-section").identifier;
140
+ this._testContext = { ...this._testContext, navPartId, navSectionId, navItemId, navItemLoading: true };
141
+ if (promise) {
142
+ promise.then((doc) => {
143
+ itemRefEl.xmlDoc = doc;
144
+ requestAnimationFrame(
145
+ () => this.dispatchEvent(new CustomEvent("qti-item-connected", { bubbles: true, composed: true }))
146
+ );
147
+ this._testContext = { ...this._testContext, navItemLoading: false };
148
+ }).catch((error) => console.error("Failed to load item:", error));
149
+ } else {
150
+ console.info("Load item request was not handled:", itemRefEl.href);
151
+ }
152
+ });
153
+ this.addEventListener("qti-assessment-test-connected", () => {
154
+ let navItemId = this._testContext.navItemId;
155
+ if (!navItemId) {
156
+ const itemRefEl = this.testElement.querySelector("qti-assessment-item-ref");
157
+ navItemId = itemRefEl.identifier;
158
+ }
159
+ this.dispatchEvent(
160
+ new CustomEvent("qti-request-test-item", { detail: navItemId, bubbles: true, composed: true })
161
+ );
162
+ });
163
+ }
164
+ _clearLoadedItems() {
165
+ const itemRefEls = this.testElement.querySelectorAll(`qti-assessment-test qti-assessment-item-ref`);
166
+ Array.from(itemRefEls).forEach((itemElement) => {
167
+ itemElement.xmlDoc = null;
168
+ });
169
+ }
170
+ _loadItemRequest(href, cancelPreviousRequest = true) {
171
+ const event = new CustomEvent("qti-load-item-request", {
172
+ bubbles: true,
173
+ composed: true,
174
+ detail: {
175
+ href,
176
+ promise: null,
177
+ cancelPreviousRequest
178
+ }
179
+ });
180
+ this.dispatchEvent(event);
181
+ return event.detail.promise;
182
+ }
183
+ }
184
+ return TestNavigationClass;
185
+ };
186
+
187
+ // src/lib/qti-test/core/mixins/test-view.mixin.ts
188
+ var TestViewMixin = (superClass) => {
189
+ class TestViewClass extends superClass {
190
+ constructor(...args) {
191
+ super(...args);
192
+ this._testContext = { ...this._testContext, view: "candidate" };
193
+ this.addEventListener("on-test-switch-view", (e) => {
194
+ this._testContext = { ...this._testContext, view: e.detail };
195
+ this._updateElementView();
196
+ });
197
+ this.addEventListener("qti-assessment-test-connected", () => {
198
+ this._updateElementView();
199
+ });
200
+ this.addEventListener("qti-assessment-item-connected", (e) => {
201
+ this._updateElementView();
202
+ this._setCorrectResponseVisibility(e.detail);
203
+ });
204
+ }
205
+ willUpdate(changedProperties) {
206
+ super.willUpdate(changedProperties);
207
+ if (changedProperties.has("_testContext")) {
208
+ this._updateElementView();
209
+ }
210
+ }
211
+ // Method to handle view updates for elements based on the current context view
212
+ _updateElementView() {
213
+ if (this.testElement && this.testElement) {
214
+ const viewElements = Array.from(this.testElement.querySelectorAll("[view]"));
215
+ viewElements.forEach((element) => {
216
+ element.classList.toggle("show", element.getAttribute("view") === this._testContext.view);
217
+ });
218
+ const assessmentItem = this.testElement.querySelector(
219
+ `qti-assessment-item[identifier="${this._testContext.navItemId}"]`
220
+ );
221
+ if (assessmentItem) {
222
+ assessmentItem.showCorrectResponse(this._testContext.view === "scorer");
223
+ }
224
+ }
225
+ }
226
+ // Event handler for connected QTI assessment items
227
+ _setCorrectResponseVisibility(assessmentItem) {
228
+ assessmentItem.showCorrectResponse(this._testContext.view === "scorer");
229
+ }
230
+ }
231
+ return TestViewClass;
232
+ };
233
+
234
+ // src/lib/qti-test/core/test-base.ts
235
+ import { provide } from "@lit/context";
236
+ import { LitElement as LitElement2 } from "lit";
237
+ import { state as state2 } from "lit/decorators.js";
238
+ var TestBase = class extends LitElement2 {
239
+ constructor() {
240
+ super();
241
+ this._testContext = { items: [], testOutcomeVariables: [] };
242
+ this.testElement = null;
243
+ /**
244
+ * Updates the variables of an assessment item in the test context.
245
+ * - Matches the assessment item with the corresponding test context item.
246
+ * - If the item is not found, logs a warning.
247
+ * - Updates variables in the test context if exactly one variable exists.
248
+ * - Otherwise, syncs the assessment item's variables with the test context.
249
+ *
250
+ * @param assessmentItem - The assessment item to update.
251
+ */
252
+ this._updateItemInTestContext = (assessmentItem) => {
253
+ const { identifier, variables } = assessmentItem;
254
+ const itemContext = this._testContext.items.find((i) => i?.identifier === identifier);
255
+ if (!itemContext) {
256
+ console.warn(`Item IDs between assessment.xml and item.xml should match: ${identifier} is not found!`);
257
+ return;
258
+ }
259
+ if (itemContext.variables?.length === 1) {
260
+ this._updateItemVariablesInTestContext(identifier, variables);
261
+ } else {
262
+ assessmentItem.variables = [...itemContext.variables || []];
263
+ }
264
+ };
265
+ this.addEventListener("qti-assessment-test-connected", (e) => {
266
+ const qtiAssessmentTest = e.detail;
267
+ const items = Array.from(qtiAssessmentTest.querySelectorAll("qti-assessment-item-ref")).map(
268
+ (itemRef) => ({
269
+ href: itemRef.href,
270
+ identifier: itemRef.identifier,
271
+ category: itemRef.category,
272
+ variables: [{ identifier: "completionStatus", value: "not_attempted", type: "outcome" }]
273
+ })
274
+ );
275
+ this.testElement = qtiAssessmentTest;
276
+ this._testContext = { ...this._testContext, items };
277
+ });
278
+ this.addEventListener("qti-assessment-item-connected", (e) => {
279
+ this._updateItemInTestContext(e.detail);
280
+ });
281
+ this.addEventListener("qti-outcome-changed", (e) => {
282
+ const assessmentitem = e.composedPath()[0];
283
+ this._updateItemVariablesInTestContext(assessmentitem.identifier, assessmentitem.variables);
284
+ });
285
+ }
286
+ get context() {
287
+ return this._testContext;
288
+ }
289
+ // /* restores the context by updating existing items and adding new items from the "contextToRestore" parameter into the "this._context.items" array. */
290
+ set context(testContext2) {
291
+ if (testContext2 === null || testContext2 === void 0) return;
292
+ this._testContext = { ...testContext2 };
293
+ testContext2.items?.forEach((itemContext) => {
294
+ const existingItemContext = this._testContext.items.find((i) => i.identifier === itemContext.identifier);
295
+ if (existingItemContext) {
296
+ existingItemContext.variables = itemContext.variables;
297
+ } else {
298
+ this._testContext.items.push(itemContext);
299
+ }
300
+ });
301
+ }
302
+ _updateItemVariablesInTestContext(identifier, variables) {
303
+ this._testContext = {
304
+ ...this._testContext,
305
+ // Spread existing test context properties
306
+ items: this._testContext.items.map((itemContext) => {
307
+ if (itemContext.identifier !== identifier) {
308
+ return itemContext;
309
+ }
310
+ return {
311
+ ...itemContext,
312
+ // Keep other properties of the item context
313
+ variables: variables.map((variable) => {
314
+ const matchingVariable = itemContext.variables.find((v) => v.identifier === variable.identifier);
315
+ return matchingVariable ? { ...matchingVariable, ...variable } : variable;
316
+ })
317
+ };
318
+ })
319
+ };
320
+ }
321
+ // private _addItemToTestContext(
322
+ // e: CustomEvent<{ href: string; identifier: string; category: string }> & { target: QtiAssessmentItemRef }
323
+ // ): void {
324
+ // const { href, identifier, category } = e.detail;
325
+ // // Update test context items, adding a new item if the identifier is not already in the list
326
+ // if (!this._testContext.items.some(item => item.identifier === identifier)) {
327
+ // this._testContext.items.push({
328
+ // href,
329
+ // identifier,
330
+ // category,
331
+ // variables: [{ identifier: 'completionStatus', value: 'not_attempted', type: 'outcome' }]
332
+ // // category: e.target.category
333
+ // });
334
+ // }
335
+ // }
336
+ };
337
+ __decorateClass([
338
+ state2(),
339
+ provide({ context: testContext })
340
+ ], TestBase.prototype, "_testContext", 2);
341
+ __decorateClass([
342
+ state2(),
343
+ provide({ context: testElement })
344
+ ], TestBase.prototype, "testElement", 2);
345
+
346
+ // src/lib/qti-test/core/mixins/test-processing.mixin.ts
347
+ var TestProcessingMixin = (superClass) => {
348
+ class TestProcessingElement extends superClass {
349
+ constructor(...args) {
350
+ super(...args);
351
+ this.addEventListener("qti-register-variable", (e) => {
352
+ this._testContext = {
353
+ ...this._testContext,
354
+ testOutcomeVariables: [...this._testContext.testOutcomeVariables, e.detail.variable]
355
+ };
356
+ e.stopPropagation();
357
+ });
358
+ this.addEventListener(
359
+ "qti-set-outcome-value",
360
+ (e) => {
361
+ const { outcomeIdentifier, value } = e.detail;
362
+ this.updateOutcomeVariable(outcomeIdentifier, value);
363
+ e.stopPropagation();
364
+ }
365
+ );
366
+ }
367
+ outcomeProcessing() {
368
+ const outcomeProcessor = this.querySelector("qti-outcome-processing");
369
+ if (!outcomeProcessor) return false;
370
+ outcomeProcessor?.process();
371
+ return true;
372
+ }
373
+ /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */
374
+ updateOutcomeVariable(identifier, value) {
375
+ const outcomeVariable = this.getOutcome(identifier);
376
+ if (!outcomeVariable) {
377
+ console.warn(`Can not set qti-outcome-identifier: ${identifier}, it is not available`);
378
+ return;
379
+ }
380
+ this._testContext = {
381
+ ...this._testContext,
382
+ testOutcomeVariables: this._testContext.testOutcomeVariables.map((v) => {
383
+ if (v.identifier !== identifier) {
384
+ return v;
385
+ }
386
+ return {
387
+ ...v,
388
+ value: outcomeVariable.cardinality === "single" ? value : [...v.value, value]
389
+ };
390
+ })
391
+ };
392
+ }
393
+ getOutcome(identifier) {
394
+ return this.getVariable(identifier);
395
+ }
396
+ getVariable(identifier) {
397
+ return this._testContext.testOutcomeVariables.find((v) => v.identifier === identifier) || null;
398
+ }
399
+ /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */
400
+ }
401
+ return TestProcessingElement;
402
+ };
403
+
404
+ // src/lib/qti-test/core/qti-test.ts
405
+ var QtiTest = class extends TestLoaderMixin(TestProcessingMixin(TestNavigationMixin(TestViewMixin(TestBase)))) {
406
+ /**
407
+ * Renders the component's template.
408
+ * Provides a default `<slot>` for content projection.
409
+ */
410
+ render() {
411
+ return html2`<slot></slot>`;
412
+ }
413
+ };
414
+ QtiTest = __decorateClass([
415
+ customElement2("qti-test")
416
+ ], QtiTest);
417
+
418
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-item-ref.ts
419
+ import { consume } from "@lit/context";
420
+ import { html as html3, LitElement as LitElement3 } from "lit";
421
+ import { property as property2 } from "lit/decorators.js";
422
+ var stringToBooleanConverter = {
423
+ fromAttribute(value) {
424
+ return value === "true";
425
+ },
426
+ toAttribute(value) {
427
+ return value ? "true" : "false";
428
+ }
429
+ };
430
+ var QtiAssessmentItemRef = class extends LitElement3 {
431
+ constructor() {
432
+ super(...arguments);
433
+ this.weigths = /* @__PURE__ */ new Map();
434
+ }
435
+ // the XMLDocument
436
+ createRenderRoot() {
437
+ return this;
438
+ }
439
+ get assessmentItem() {
440
+ return this.renderRoot?.querySelector("qti-assessment-item");
441
+ }
442
+ async connectedCallback() {
443
+ super.connectedCallback();
444
+ await this.updateComplete;
445
+ this.dispatchEvent(
446
+ new CustomEvent("qti-assessment-item-ref-connected", {
447
+ bubbles: true,
448
+ composed: true,
449
+ detail: { identifier: this.identifier, href: this.href, category: this.category }
450
+ })
451
+ );
452
+ }
453
+ render() {
454
+ return html3`${this.xmlDoc}`;
455
+ }
456
+ };
457
+ __decorateClass([
458
+ property2({ type: String })
459
+ ], QtiAssessmentItemRef.prototype, "category", 2);
460
+ __decorateClass([
461
+ property2({ type: String })
462
+ ], QtiAssessmentItemRef.prototype, "identifier", 2);
463
+ __decorateClass([
464
+ property2({ type: Boolean, converter: stringToBooleanConverter })
465
+ ], QtiAssessmentItemRef.prototype, "required", 2);
466
+ __decorateClass([
467
+ property2({ type: Boolean, converter: stringToBooleanConverter })
468
+ ], QtiAssessmentItemRef.prototype, "fixed", 2);
469
+ __decorateClass([
470
+ property2({ type: String })
471
+ ], QtiAssessmentItemRef.prototype, "href", 2);
472
+ __decorateClass([
473
+ consume({ context: testContext, subscribe: true })
474
+ ], QtiAssessmentItemRef.prototype, "_testContext", 2);
475
+ __decorateClass([
476
+ property2({ type: Object, attribute: false })
477
+ ], QtiAssessmentItemRef.prototype, "xmlDoc", 2);
478
+ if (!customElements.get("qti-assessment-item-ref")) {
479
+ customElements.define("qti-assessment-item-ref", QtiAssessmentItemRef);
480
+ }
481
+
482
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-section.ts
483
+ import { consume as consume2 } from "@lit/context";
484
+ import { html as html4, LitElement as LitElement4 } from "lit";
485
+ import { property as property3 } from "lit/decorators.js";
486
+ var stringToBooleanConverter2 = {
487
+ fromAttribute(value) {
488
+ return value === "true";
489
+ },
490
+ toAttribute(value) {
491
+ return value ? "true" : "false";
492
+ }
493
+ };
494
+ var QtiAssessmentSection = class extends LitElement4 {
495
+ async connectedCallback() {
496
+ super.connectedCallback();
497
+ await this.updateComplete;
498
+ this.dispatchEvent(
499
+ new Event("qti-assessment-section-connected", {
500
+ bubbles: true,
501
+ composed: true
502
+ })
503
+ );
504
+ }
505
+ render() {
506
+ return html4`<slot name="qti-rubric-block"></slot><slot></slot>`;
507
+ }
508
+ };
509
+ __decorateClass([
510
+ property3({ type: String })
511
+ ], QtiAssessmentSection.prototype, "identifier", 2);
512
+ __decorateClass([
513
+ property3({ type: String })
514
+ ], QtiAssessmentSection.prototype, "required", 2);
515
+ __decorateClass([
516
+ property3({ type: Boolean, converter: stringToBooleanConverter2 })
517
+ ], QtiAssessmentSection.prototype, "fixed", 2);
518
+ __decorateClass([
519
+ property3({ type: String })
520
+ ], QtiAssessmentSection.prototype, "title", 2);
521
+ __decorateClass([
522
+ property3({ type: Boolean, converter: stringToBooleanConverter2 })
523
+ ], QtiAssessmentSection.prototype, "visible", 2);
524
+ __decorateClass([
525
+ property3({ type: Boolean, converter: stringToBooleanConverter2, attribute: "keep-together" })
526
+ ], QtiAssessmentSection.prototype, "keepTogether", 2);
527
+ __decorateClass([
528
+ consume2({ context: testContext, subscribe: true })
529
+ ], QtiAssessmentSection.prototype, "_testContext", 2);
530
+ if (!customElements.get("qti-assessment-section")) {
531
+ customElements.define("qti-assessment-section", QtiAssessmentSection);
532
+ }
533
+
534
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-test.ts
535
+ import { consume as consume3 } from "@lit/context";
536
+ import { html as html5, LitElement as LitElement5 } from "lit";
537
+ import { customElement as customElement3, property as property4 } from "lit/decorators.js";
538
+ var QtiAssessmentTest = class extends LitElement5 {
539
+ async connectedCallback() {
540
+ super.connectedCallback();
541
+ await this.updateComplete;
542
+ this.dispatchEvent(
543
+ new CustomEvent("qti-assessment-test-connected", {
544
+ detail: this,
545
+ bubbles: true,
546
+ composed: true
547
+ })
548
+ );
549
+ }
550
+ render() {
551
+ return html5` <slot></slot>`;
552
+ }
553
+ };
554
+ __decorateClass([
555
+ property4({ type: String })
556
+ ], QtiAssessmentTest.prototype, "identifier", 2);
557
+ __decorateClass([
558
+ property4({ type: String })
559
+ ], QtiAssessmentTest.prototype, "title", 2);
560
+ __decorateClass([
561
+ consume3({ context: testContext, subscribe: true })
562
+ ], QtiAssessmentTest.prototype, "_testContext", 2);
563
+ QtiAssessmentTest = __decorateClass([
564
+ customElement3("qti-assessment-test")
565
+ ], QtiAssessmentTest);
566
+
567
+ // src/lib/qti-test/core/qti-assessment-test/qti-test-part.ts
568
+ import { html as html6, LitElement as LitElement6 } from "lit";
569
+ import { customElement as customElement4, property as property5 } from "lit/decorators.js";
570
+ var QtiTestPart = class extends LitElement6 {
571
+ constructor() {
572
+ super(...arguments);
573
+ this.identifier = "";
574
+ this.title = "";
575
+ this.class = "";
576
+ this.NavigationMode = "nonlinear";
577
+ this.submissionMode = "individual";
578
+ }
579
+ async connectedCallback() {
580
+ super.connectedCallback();
581
+ await this.updateComplete;
582
+ this.dispatchEvent(
583
+ new Event("qti-test-part-connected", {
584
+ bubbles: true,
585
+ composed: true
586
+ })
587
+ );
588
+ }
589
+ render() {
590
+ return html6` <slot></slot>`;
591
+ }
592
+ };
593
+ __decorateClass([
594
+ property5({ type: String })
595
+ ], QtiTestPart.prototype, "identifier", 2);
596
+ __decorateClass([
597
+ property5({ type: String })
598
+ ], QtiTestPart.prototype, "title", 2);
599
+ __decorateClass([
600
+ property5({ type: String })
601
+ ], QtiTestPart.prototype, "class", 2);
602
+ __decorateClass([
603
+ property5({ type: String, attribute: "navigation-mode" })
604
+ ], QtiTestPart.prototype, "NavigationMode", 2);
605
+ __decorateClass([
606
+ property5({ type: String, attribute: "submission-mode" })
607
+ ], QtiTestPart.prototype, "submissionMode", 2);
608
+ QtiTestPart = __decorateClass([
609
+ customElement4("qti-test-part")
610
+ ], QtiTestPart);
611
+ if (!customElements.get("qti-test-part")) {
612
+ customElements.define("qti-test-part", QtiTestPart);
613
+ }
614
+
615
+ export {
616
+ TestContainer,
617
+ QtiTest,
618
+ QtiAssessmentItemRef,
619
+ QtiAssessmentSection,
620
+ QtiAssessmentTest,
621
+ QtiTestPart
622
+ };
623
+ //# sourceMappingURL=chunk-YOXF6JPS.js.map