@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,649 @@
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
+ import { property as property2 } from "lit/decorators.js";
102
+ var setSessionData = (key, value) => sessionStorage.setItem(key, JSON.stringify(value));
103
+ var getSessionData = (key) => sessionStorage.getItem(key) ? JSON.parse(sessionStorage.getItem(key)) : null;
104
+ var TestLoaderMixin = (superClass) => {
105
+ class TestLoaderClass extends superClass {
106
+ constructor(...args) {
107
+ super(...args);
108
+ this.autoScoreItems = false;
109
+ this.autoStoreRestoreContext = false;
110
+ this.addEventListener("qti-test-connected", () => {
111
+ if (this.autoStoreRestoreContext) {
112
+ this.context = getSessionData(`testcontext`);
113
+ }
114
+ });
115
+ this.addEventListener("qti-load-item-request", ({ detail }) => {
116
+ detail.promise = (async () => {
117
+ const api = await qtiTransformItem().load(`${detail.href}`, detail.cancelPreviousRequest);
118
+ return api.htmlDoc();
119
+ })();
120
+ });
121
+ this.addEventListener("qti-interaction-changed", (e) => {
122
+ if (this.autoScoreItems) {
123
+ const qtiItemEl = this.testElement.querySelector(
124
+ `qti-assessment-item-ref[identifier="${this.context.navItemId}"]`
125
+ );
126
+ const qtiAssessmentItem = qtiItemEl.assessmentItem;
127
+ const scoreOutcomeIdentifier = qtiAssessmentItem.variables.find(
128
+ (v) => v.identifier === "SCORE"
129
+ );
130
+ if (scoreOutcomeIdentifier.externalScored === null && qtiAssessmentItem.adaptive === "false") {
131
+ qtiAssessmentItem.processResponse();
132
+ if (this.autoStoreRestoreContext) {
133
+ setSessionData(`testcontext`, this.context);
134
+ }
135
+ }
136
+ } else {
137
+ if (this.autoStoreRestoreContext) {
138
+ setSessionData(`testcontext`, this.context);
139
+ }
140
+ }
141
+ });
142
+ }
143
+ }
144
+ __decorateClass([
145
+ property2({ type: Boolean, attribute: "auto-score-items" })
146
+ ], TestLoaderClass.prototype, "autoScoreItems", 2);
147
+ __decorateClass([
148
+ property2({ type: Boolean, attribute: "auto-store-restore" })
149
+ ], TestLoaderClass.prototype, "autoStoreRestoreContext", 2);
150
+ return TestLoaderClass;
151
+ };
152
+
153
+ // src/lib/qti-test/core/mixins/test-navigation.mixin.ts
154
+ var TestNavigationMixin = (superClass) => {
155
+ class TestNavigationClass extends superClass {
156
+ constructor(...args) {
157
+ super(...args);
158
+ this.addEventListener("qti-request-test-item", ({ detail: navItemId }) => {
159
+ if (!navItemId) return;
160
+ this._clearLoadedItems();
161
+ const itemRefEl = this.testElement.querySelector(
162
+ `qti-assessment-item-ref[identifier="${navItemId}"]`
163
+ );
164
+ const promise = this._loadItemRequest(itemRefEl.href, false);
165
+ const navPartId = itemRefEl.closest("qti-test-part").identifier;
166
+ const navSectionId = itemRefEl.closest("qti-assessment-section").identifier;
167
+ this._testContext = { ...this._testContext, navPartId, navSectionId, navItemId, navItemLoading: true };
168
+ if (promise) {
169
+ promise.then((doc) => {
170
+ itemRefEl.xmlDoc = doc;
171
+ requestAnimationFrame(
172
+ () => this.dispatchEvent(new CustomEvent("qti-item-connected", { bubbles: true, composed: true }))
173
+ );
174
+ this._testContext = { ...this._testContext, navItemLoading: false };
175
+ }).catch((error) => console.error("Failed to load item:", error));
176
+ } else {
177
+ console.info("Load item request was not handled:", itemRefEl.href);
178
+ }
179
+ });
180
+ this.addEventListener("qti-assessment-test-connected", () => {
181
+ let navItemId = this._testContext.navItemId;
182
+ if (!navItemId) {
183
+ const itemRefEl = this.testElement.querySelector("qti-assessment-item-ref");
184
+ navItemId = itemRefEl.identifier;
185
+ }
186
+ this.dispatchEvent(
187
+ new CustomEvent("qti-request-test-item", { detail: navItemId, bubbles: true, composed: true })
188
+ );
189
+ });
190
+ }
191
+ _clearLoadedItems() {
192
+ const itemRefEls = this.testElement.querySelectorAll(`qti-assessment-test qti-assessment-item-ref`);
193
+ Array.from(itemRefEls).forEach((itemElement) => {
194
+ itemElement.xmlDoc = null;
195
+ });
196
+ }
197
+ _loadItemRequest(href, cancelPreviousRequest = true) {
198
+ const event = new CustomEvent("qti-load-item-request", {
199
+ bubbles: true,
200
+ composed: true,
201
+ detail: {
202
+ href,
203
+ promise: null,
204
+ cancelPreviousRequest
205
+ }
206
+ });
207
+ this.dispatchEvent(event);
208
+ return event.detail.promise;
209
+ }
210
+ }
211
+ return TestNavigationClass;
212
+ };
213
+
214
+ // src/lib/qti-test/core/mixins/test-view.mixin.ts
215
+ var TestViewMixin = (superClass) => {
216
+ class TestViewClass extends superClass {
217
+ constructor(...args) {
218
+ super(...args);
219
+ this._testContext = { ...this._testContext, view: "candidate" };
220
+ this.addEventListener("on-test-switch-view", (e) => {
221
+ this._testContext = { ...this._testContext, view: e.detail };
222
+ this._updateElementView();
223
+ });
224
+ this.addEventListener("qti-assessment-test-connected", () => {
225
+ this._updateElementView();
226
+ });
227
+ this.addEventListener("qti-assessment-item-connected", (e) => {
228
+ this._updateElementView();
229
+ this._setCorrectResponseVisibility(e.detail);
230
+ });
231
+ }
232
+ willUpdate(changedProperties) {
233
+ super.willUpdate(changedProperties);
234
+ if (changedProperties.has("_testContext")) {
235
+ this._updateElementView();
236
+ }
237
+ }
238
+ // Method to handle view updates for elements based on the current context view
239
+ _updateElementView() {
240
+ if (this.testElement && this.testElement) {
241
+ const viewElements = Array.from(this.testElement.querySelectorAll("[view]"));
242
+ viewElements.forEach((element) => {
243
+ element.classList.toggle("show", element.getAttribute("view") === this._testContext.view);
244
+ });
245
+ const assessmentItem = this.testElement.querySelector(
246
+ `qti-assessment-item[identifier="${this._testContext.navItemId}"]`
247
+ );
248
+ if (assessmentItem) {
249
+ assessmentItem.showCorrectResponse(this._testContext.view === "scorer");
250
+ }
251
+ }
252
+ }
253
+ // Event handler for connected QTI assessment items
254
+ _setCorrectResponseVisibility(assessmentItem) {
255
+ assessmentItem.showCorrectResponse(this._testContext.view === "scorer");
256
+ }
257
+ }
258
+ return TestViewClass;
259
+ };
260
+
261
+ // src/lib/qti-test/core/test-base.ts
262
+ import { provide } from "@lit/context";
263
+ import { LitElement as LitElement2 } from "lit";
264
+ import { state as state2 } from "lit/decorators.js";
265
+ var TestBase = class extends LitElement2 {
266
+ constructor() {
267
+ super();
268
+ this._testContext = { items: [], testOutcomeVariables: [] };
269
+ this.testElement = null;
270
+ /**
271
+ * Updates the variables of an assessment item in the test context.
272
+ * - Matches the assessment item with the corresponding test context item.
273
+ * - If the item is not found, logs a warning.
274
+ * - Updates variables in the test context if exactly one variable exists.
275
+ * - Otherwise, syncs the assessment item's variables with the test context.
276
+ *
277
+ * @param assessmentItem - The assessment item to update.
278
+ */
279
+ this._updateItemInTestContext = (assessmentItem) => {
280
+ const { identifier, variables } = assessmentItem;
281
+ const itemContext = this._testContext.items.find((i) => i?.identifier === identifier);
282
+ if (!itemContext) {
283
+ console.warn(`Item IDs between assessment.xml and item.xml should match: ${identifier} is not found!`);
284
+ return;
285
+ }
286
+ if (itemContext.variables?.length === 1) {
287
+ this._updateItemVariablesInTestContext(identifier, variables);
288
+ } else {
289
+ assessmentItem.variables = [...itemContext.variables || []];
290
+ }
291
+ };
292
+ this.addEventListener("qti-assessment-test-connected", (e) => {
293
+ const qtiAssessmentTest = e.detail;
294
+ this.testElement = qtiAssessmentTest;
295
+ const items = Array.from(qtiAssessmentTest.querySelectorAll("qti-assessment-item-ref")).map((itemRef) => {
296
+ const existingItem = this._testContext.items.find((item) => item.identifier === itemRef.identifier);
297
+ return {
298
+ ...existingItem,
299
+ // Spread all existing properties
300
+ href: existingItem?.href || itemRef.href,
301
+ identifier: existingItem?.identifier || itemRef.identifier,
302
+ category: existingItem?.category || itemRef.category,
303
+ variables: existingItem?.variables || [
304
+ {
305
+ identifier: "completionStatus",
306
+ value: "not_attempted",
307
+ type: "outcome"
308
+ }
309
+ ]
310
+ };
311
+ });
312
+ this._testContext = { ...this._testContext, items };
313
+ });
314
+ this.addEventListener("qti-assessment-item-connected", (e) => {
315
+ this._updateItemInTestContext(e.detail);
316
+ });
317
+ this.addEventListener("qti-outcome-changed", (e) => {
318
+ const assessmentitem = e.composedPath()[0];
319
+ this._updateItemVariablesInTestContext(assessmentitem.identifier, assessmentitem.variables);
320
+ });
321
+ }
322
+ get context() {
323
+ return this._testContext;
324
+ }
325
+ // /* restores the context by updating existing items and adding new items from the "contextToRestore" parameter into the "this._context.items" array. */
326
+ set context(testContext2) {
327
+ if (testContext2 === null || testContext2 === void 0) return;
328
+ this._testContext = { ...testContext2 };
329
+ testContext2.items?.forEach((itemContext) => {
330
+ const existingItemContext = this._testContext.items.find((i) => i.identifier === itemContext.identifier);
331
+ if (existingItemContext) {
332
+ existingItemContext.variables = itemContext.variables;
333
+ } else {
334
+ this._testContext.items.push(itemContext);
335
+ }
336
+ });
337
+ }
338
+ _updateItemVariablesInTestContext(identifier, variables) {
339
+ this._testContext = {
340
+ ...this._testContext,
341
+ // Spread existing test context properties
342
+ items: this._testContext.items.map((itemContext) => {
343
+ if (itemContext.identifier !== identifier) {
344
+ return itemContext;
345
+ }
346
+ return {
347
+ ...itemContext,
348
+ // Keep other properties of the item context
349
+ variables: variables.map((variable) => {
350
+ const matchingVariable = itemContext.variables.find((v) => v.identifier === variable.identifier);
351
+ return matchingVariable ? { ...matchingVariable, ...variable } : variable;
352
+ })
353
+ };
354
+ })
355
+ };
356
+ }
357
+ };
358
+ __decorateClass([
359
+ state2(),
360
+ provide({ context: testContext })
361
+ ], TestBase.prototype, "_testContext", 2);
362
+ __decorateClass([
363
+ state2(),
364
+ provide({ context: testElement })
365
+ ], TestBase.prototype, "testElement", 2);
366
+
367
+ // src/lib/qti-test/core/mixins/test-processing.mixin.ts
368
+ var TestProcessingMixin = (superClass) => {
369
+ class TestProcessingElement extends superClass {
370
+ constructor(...args) {
371
+ super(...args);
372
+ this.addEventListener("qti-register-variable", (e) => {
373
+ this._testContext = {
374
+ ...this._testContext,
375
+ testOutcomeVariables: [...this._testContext.testOutcomeVariables, e.detail.variable]
376
+ };
377
+ e.stopPropagation();
378
+ });
379
+ this.addEventListener(
380
+ "qti-set-outcome-value",
381
+ (e) => {
382
+ const { outcomeIdentifier, value } = e.detail;
383
+ this.updateOutcomeVariable(outcomeIdentifier, value);
384
+ e.stopPropagation();
385
+ }
386
+ );
387
+ }
388
+ outcomeProcessing() {
389
+ const outcomeProcessor = this.querySelector("qti-outcome-processing");
390
+ if (!outcomeProcessor) return false;
391
+ outcomeProcessor?.process();
392
+ return true;
393
+ }
394
+ /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */
395
+ updateOutcomeVariable(identifier, value) {
396
+ const outcomeVariable = this.getOutcome(identifier);
397
+ if (!outcomeVariable) {
398
+ console.warn(`Can not set qti-outcome-identifier: ${identifier}, it is not available`);
399
+ return;
400
+ }
401
+ this._testContext = {
402
+ ...this._testContext,
403
+ testOutcomeVariables: this._testContext.testOutcomeVariables.map((v) => {
404
+ if (v.identifier !== identifier) {
405
+ return v;
406
+ }
407
+ return {
408
+ ...v,
409
+ value: outcomeVariable.cardinality === "single" ? value : [...v.value, value]
410
+ };
411
+ })
412
+ };
413
+ }
414
+ getOutcome(identifier) {
415
+ return this.getVariable(identifier);
416
+ }
417
+ getVariable(identifier) {
418
+ return this._testContext.testOutcomeVariables.find((v) => v.identifier === identifier) || null;
419
+ }
420
+ /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */
421
+ }
422
+ return TestProcessingElement;
423
+ };
424
+
425
+ // src/lib/qti-test/core/qti-test.ts
426
+ var QtiTest = class extends TestLoaderMixin(TestProcessingMixin(TestNavigationMixin(TestViewMixin(TestBase)))) {
427
+ /**
428
+ * Renders the component's template.
429
+ * Provides a default `<slot>` for content projection.
430
+ */
431
+ async connectedCallback() {
432
+ super.connectedCallback();
433
+ await this.updateComplete;
434
+ this.dispatchEvent(new CustomEvent("qti-test-connected", { detail: this }));
435
+ }
436
+ render() {
437
+ return html2`<slot></slot>`;
438
+ }
439
+ };
440
+ QtiTest = __decorateClass([
441
+ customElement2("qti-test")
442
+ ], QtiTest);
443
+
444
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-item-ref.ts
445
+ import { consume } from "@lit/context";
446
+ import { html as html3, LitElement as LitElement3 } from "lit";
447
+ import { property as property3 } from "lit/decorators.js";
448
+ var stringToBooleanConverter = {
449
+ fromAttribute(value) {
450
+ return value === "true";
451
+ },
452
+ toAttribute(value) {
453
+ return value ? "true" : "false";
454
+ }
455
+ };
456
+ var QtiAssessmentItemRef = class extends LitElement3 {
457
+ constructor() {
458
+ super(...arguments);
459
+ this.weigths = /* @__PURE__ */ new Map();
460
+ }
461
+ // the XMLDocument
462
+ createRenderRoot() {
463
+ return this;
464
+ }
465
+ get assessmentItem() {
466
+ return this.renderRoot?.querySelector("qti-assessment-item");
467
+ }
468
+ async connectedCallback() {
469
+ super.connectedCallback();
470
+ await this.updateComplete;
471
+ this.dispatchEvent(
472
+ new CustomEvent("qti-assessment-item-ref-connected", {
473
+ bubbles: true,
474
+ composed: true,
475
+ detail: { identifier: this.identifier, href: this.href, category: this.category }
476
+ })
477
+ );
478
+ }
479
+ render() {
480
+ return html3`${this.xmlDoc}`;
481
+ }
482
+ };
483
+ __decorateClass([
484
+ property3({ type: String })
485
+ ], QtiAssessmentItemRef.prototype, "category", 2);
486
+ __decorateClass([
487
+ property3({ type: String })
488
+ ], QtiAssessmentItemRef.prototype, "identifier", 2);
489
+ __decorateClass([
490
+ property3({ type: Boolean, converter: stringToBooleanConverter })
491
+ ], QtiAssessmentItemRef.prototype, "required", 2);
492
+ __decorateClass([
493
+ property3({ type: Boolean, converter: stringToBooleanConverter })
494
+ ], QtiAssessmentItemRef.prototype, "fixed", 2);
495
+ __decorateClass([
496
+ property3({ type: String })
497
+ ], QtiAssessmentItemRef.prototype, "href", 2);
498
+ __decorateClass([
499
+ consume({ context: testContext, subscribe: true })
500
+ ], QtiAssessmentItemRef.prototype, "_testContext", 2);
501
+ __decorateClass([
502
+ property3({ type: Object, attribute: false })
503
+ ], QtiAssessmentItemRef.prototype, "xmlDoc", 2);
504
+ if (!customElements.get("qti-assessment-item-ref")) {
505
+ customElements.define("qti-assessment-item-ref", QtiAssessmentItemRef);
506
+ }
507
+
508
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-section.ts
509
+ import { consume as consume2 } from "@lit/context";
510
+ import { html as html4, LitElement as LitElement4 } from "lit";
511
+ import { property as property4 } from "lit/decorators.js";
512
+ var stringToBooleanConverter2 = {
513
+ fromAttribute(value) {
514
+ return value === "true";
515
+ },
516
+ toAttribute(value) {
517
+ return value ? "true" : "false";
518
+ }
519
+ };
520
+ var QtiAssessmentSection = class extends LitElement4 {
521
+ async connectedCallback() {
522
+ super.connectedCallback();
523
+ await this.updateComplete;
524
+ this.dispatchEvent(
525
+ new Event("qti-assessment-section-connected", {
526
+ bubbles: true,
527
+ composed: true
528
+ })
529
+ );
530
+ }
531
+ render() {
532
+ return html4`<slot name="qti-rubric-block"></slot><slot></slot>`;
533
+ }
534
+ };
535
+ __decorateClass([
536
+ property4({ type: String })
537
+ ], QtiAssessmentSection.prototype, "identifier", 2);
538
+ __decorateClass([
539
+ property4({ type: String })
540
+ ], QtiAssessmentSection.prototype, "required", 2);
541
+ __decorateClass([
542
+ property4({ type: Boolean, converter: stringToBooleanConverter2 })
543
+ ], QtiAssessmentSection.prototype, "fixed", 2);
544
+ __decorateClass([
545
+ property4({ type: String })
546
+ ], QtiAssessmentSection.prototype, "title", 2);
547
+ __decorateClass([
548
+ property4({ type: Boolean, converter: stringToBooleanConverter2 })
549
+ ], QtiAssessmentSection.prototype, "visible", 2);
550
+ __decorateClass([
551
+ property4({ type: Boolean, converter: stringToBooleanConverter2, attribute: "keep-together" })
552
+ ], QtiAssessmentSection.prototype, "keepTogether", 2);
553
+ __decorateClass([
554
+ consume2({ context: testContext, subscribe: true })
555
+ ], QtiAssessmentSection.prototype, "_testContext", 2);
556
+ if (!customElements.get("qti-assessment-section")) {
557
+ customElements.define("qti-assessment-section", QtiAssessmentSection);
558
+ }
559
+
560
+ // src/lib/qti-test/core/qti-assessment-test/qti-assessment-test.ts
561
+ import { consume as consume3 } from "@lit/context";
562
+ import { html as html5, LitElement as LitElement5 } from "lit";
563
+ import { customElement as customElement3, property as property5 } from "lit/decorators.js";
564
+ var QtiAssessmentTest = class extends LitElement5 {
565
+ async connectedCallback() {
566
+ super.connectedCallback();
567
+ await this.updateComplete;
568
+ this.dispatchEvent(
569
+ new CustomEvent("qti-assessment-test-connected", {
570
+ detail: this,
571
+ bubbles: true,
572
+ composed: true
573
+ })
574
+ );
575
+ }
576
+ render() {
577
+ return html5` <slot></slot>`;
578
+ }
579
+ };
580
+ __decorateClass([
581
+ property5({ type: String })
582
+ ], QtiAssessmentTest.prototype, "identifier", 2);
583
+ __decorateClass([
584
+ property5({ type: String })
585
+ ], QtiAssessmentTest.prototype, "title", 2);
586
+ __decorateClass([
587
+ consume3({ context: testContext, subscribe: true })
588
+ ], QtiAssessmentTest.prototype, "_testContext", 2);
589
+ QtiAssessmentTest = __decorateClass([
590
+ customElement3("qti-assessment-test")
591
+ ], QtiAssessmentTest);
592
+
593
+ // src/lib/qti-test/core/qti-assessment-test/qti-test-part.ts
594
+ import { html as html6, LitElement as LitElement6 } from "lit";
595
+ import { customElement as customElement4, property as property6 } from "lit/decorators.js";
596
+ var QtiTestPart = class extends LitElement6 {
597
+ constructor() {
598
+ super(...arguments);
599
+ this.identifier = "";
600
+ this.title = "";
601
+ this.class = "";
602
+ this.NavigationMode = "nonlinear";
603
+ this.submissionMode = "individual";
604
+ }
605
+ async connectedCallback() {
606
+ super.connectedCallback();
607
+ await this.updateComplete;
608
+ this.dispatchEvent(
609
+ new Event("qti-test-part-connected", {
610
+ bubbles: true,
611
+ composed: true
612
+ })
613
+ );
614
+ }
615
+ render() {
616
+ return html6` <slot></slot>`;
617
+ }
618
+ };
619
+ __decorateClass([
620
+ property6({ type: String })
621
+ ], QtiTestPart.prototype, "identifier", 2);
622
+ __decorateClass([
623
+ property6({ type: String })
624
+ ], QtiTestPart.prototype, "title", 2);
625
+ __decorateClass([
626
+ property6({ type: String })
627
+ ], QtiTestPart.prototype, "class", 2);
628
+ __decorateClass([
629
+ property6({ type: String, attribute: "navigation-mode" })
630
+ ], QtiTestPart.prototype, "NavigationMode", 2);
631
+ __decorateClass([
632
+ property6({ type: String, attribute: "submission-mode" })
633
+ ], QtiTestPart.prototype, "submissionMode", 2);
634
+ QtiTestPart = __decorateClass([
635
+ customElement4("qti-test-part")
636
+ ], QtiTestPart);
637
+ if (!customElements.get("qti-test-part")) {
638
+ customElements.define("qti-test-part", QtiTestPart);
639
+ }
640
+
641
+ export {
642
+ TestContainer,
643
+ QtiTest,
644
+ QtiAssessmentItemRef,
645
+ QtiAssessmentSection,
646
+ QtiAssessmentTest,
647
+ QtiTestPart
648
+ };
649
+ //# sourceMappingURL=chunk-ZQXZ6PK7.js.map