@citolab/qti-components 7.0.6 → 7.0.9-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/cdn/chunks/chunk-3AHQU35T.js +1 -0
  2. package/cdn/chunks/chunk-4AGTWY6I.js +1 -0
  3. package/cdn/{chunk-A536ZOJJ.js → chunks/chunk-6EIGTAJQ.js} +2 -4
  4. package/cdn/chunks/chunk-6UEXCXHG.js +17 -0
  5. package/cdn/chunks/chunk-BJL2ZC5L.js +1 -0
  6. package/cdn/chunks/chunk-FB3WTNRH.js +8 -0
  7. package/cdn/chunks/chunk-GCKESRQG.js +1 -0
  8. package/{dist/chunks/chunk-NZQKGIJP.js → cdn/chunks/chunk-GVU44M3E.js} +6 -8
  9. package/cdn/chunks/{chunk-T2KKTMAT.js → chunk-I3HQJPKA.js} +84 -84
  10. package/cdn/chunks/chunk-IKDNYCM7.js +1 -0
  11. package/cdn/chunks/chunk-KDO3T66B.js +1 -0
  12. package/cdn/chunks/chunk-KGVJXME7.js +934 -0
  13. package/cdn/chunks/chunk-KQPTKMFJ.js +1 -0
  14. package/cdn/chunks/{chunk-4ILXLVT5.js → chunk-LCKLXCUP.js} +6 -18
  15. package/cdn/chunks/chunk-M5PPZ5M3.js +59 -0
  16. package/cdn/chunks/chunk-O5MMIBRR.js +10 -0
  17. package/cdn/chunks/chunk-OEXGDZO2.js +8 -0
  18. package/cdn/chunks/{chunk-RXKI3AO4.js → chunk-R45JL2ZY.js} +1 -1
  19. package/cdn/chunks/chunk-W2VSEYLY.js +8 -0
  20. package/cdn/chunks/chunk-WYDU2FBY.js +8 -0
  21. package/cdn/chunks/chunk-X7T7HK65.js +8 -0
  22. package/cdn/chunks/{chunk-X2KBNXRO.js → chunk-YIYKK4RV.js} +1 -1
  23. package/cdn/exports/computed.context.js +1 -0
  24. package/cdn/exports/config.context.js +1 -0
  25. package/cdn/exports/qti-assessment-item.context.js +1 -1
  26. package/cdn/exports/qti-condition-expression.js +1 -1
  27. package/cdn/exports/qti-expression.js +1 -1
  28. package/cdn/exports/session.context.js +1 -0
  29. package/cdn/exports/test.context.js +1 -0
  30. package/cdn/index.global.js +1 -1
  31. package/cdn/index.js +1 -1
  32. package/cdn/qti-components/index.js +1 -1
  33. package/cdn/qti-item/core/index.js +1 -1
  34. package/cdn/qti-test/components/index.js +1 -1
  35. package/cdn/qti-test/components/test-container.js +1 -3549
  36. package/cdn/qti-test/components/test-end-attempt.js +1 -1
  37. package/cdn/qti-test/components/test-item-link.js +1 -1
  38. package/cdn/qti-test/components/test-navigation.js +1 -0
  39. package/cdn/qti-test/components/test-next.js +1 -1
  40. package/cdn/qti-test/components/test-paging-buttons-stamp.js +1 -1
  41. package/cdn/qti-test/components/test-prev.js +1 -1
  42. package/cdn/qti-test/components/test-show-correct-response.js +1 -1
  43. package/cdn/qti-test/components/test-view.js +1 -1
  44. package/cdn/qti-test/core/index.js +1 -1
  45. package/dist/chunks/chunk-3A4IOMBQ.js +8 -0
  46. package/dist/chunks/chunk-3A4IOMBQ.js.map +1 -0
  47. package/dist/{chunk-2CHF3TMY.js → chunks/chunk-6MW3J6OM.js} +112 -4
  48. package/dist/chunks/chunk-6MW3J6OM.js.map +1 -0
  49. package/dist/chunks/chunk-CBYNKDSF.js +1 -0
  50. package/dist/chunks/{chunk-WWN5AD6V.js → chunk-CHINL5UJ.js} +12 -7
  51. package/dist/chunks/chunk-CHINL5UJ.js.map +1 -0
  52. package/dist/chunks/{chunk-W4272Q5U.js → chunk-CWCYTL3F.js} +18 -8
  53. package/dist/chunks/chunk-CWCYTL3F.js.map +1 -0
  54. package/dist/chunks/{chunk-GQ5P3NWC.js → chunk-FZVLLSCM.js} +18 -8
  55. package/dist/chunks/chunk-FZVLLSCM.js.map +1 -0
  56. package/dist/chunks/chunk-GNCPECOC.js +45 -0
  57. package/dist/chunks/chunk-GNCPECOC.js.map +1 -0
  58. package/dist/chunks/{chunk-YOXF6JPS.js → chunk-GRYVMG5Q.js} +135 -193
  59. package/dist/chunks/chunk-GRYVMG5Q.js.map +1 -0
  60. package/dist/chunks/{chunk-BPHQLJWE.js → chunk-I7HVKMDI.js} +2 -2
  61. package/dist/chunks/chunk-I7HVKMDI.js.map +1 -0
  62. package/dist/chunks/chunk-J4MM4JXS.js +8 -0
  63. package/dist/chunks/chunk-J4MM4JXS.js.map +1 -0
  64. package/dist/chunks/{chunk-FV7HWK54.js → chunk-JUAS2TVR.js} +1 -1
  65. package/dist/chunks/chunk-JUAS2TVR.js.map +1 -0
  66. package/dist/chunks/chunk-K6EUKFNW.js +43 -0
  67. package/dist/chunks/chunk-K6EUKFNW.js.map +1 -0
  68. package/dist/chunks/chunk-LZ7UIV5O.js +91 -0
  69. package/dist/chunks/chunk-LZ7UIV5O.js.map +1 -0
  70. package/dist/chunks/{chunk-J2SHENRN.js → chunk-MDWBTFKL.js} +100 -5
  71. package/dist/chunks/chunk-MDWBTFKL.js.map +1 -0
  72. package/dist/chunks/{chunk-KOEILLVS.js → chunk-NJNQOQUU.js} +1 -1
  73. package/dist/chunks/chunk-NJNQOQUU.js.map +1 -0
  74. package/dist/chunks/{chunk-E4TWZ2DL.js → chunk-NPHDN2TQ.js} +139 -113
  75. package/dist/chunks/chunk-NPHDN2TQ.js.map +1 -0
  76. package/dist/chunks/chunk-ODLYMQOS.js +8 -0
  77. package/dist/chunks/chunk-ODLYMQOS.js.map +1 -0
  78. package/dist/chunks/{chunk-XSI6FXGD.js → chunk-OOQLWOYU.js} +2 -2
  79. package/dist/chunks/{chunk-NHA53UTY.js → chunk-PR6AZWRP.js} +3 -6
  80. package/dist/chunks/chunk-PR6AZWRP.js.map +1 -0
  81. package/dist/chunks/chunk-QAA6MWGE.js +170 -0
  82. package/dist/chunks/chunk-QAA6MWGE.js.map +1 -0
  83. package/dist/chunks/chunk-QTH3WLGY.js +8 -0
  84. package/dist/chunks/chunk-QTH3WLGY.js.map +1 -0
  85. package/dist/chunks/{chunk-DLUJN2FW.js → chunk-W7ZXKJ5O.js} +1 -1
  86. package/dist/chunks/chunk-W7ZXKJ5O.js.map +1 -0
  87. package/dist/chunks/{chunk-OIRWOI3E.js → chunk-WRHEO7NG.js} +1 -1
  88. package/dist/chunks/chunk-WRHEO7NG.js.map +1 -0
  89. package/dist/chunks/chunk-WXART76T.js +95 -0
  90. package/dist/chunks/chunk-WXART76T.js.map +1 -0
  91. package/dist/exports/computed.context.d.ts +30 -0
  92. package/dist/exports/computed.context.js +8 -0
  93. package/dist/exports/config.context.d.ts +8 -0
  94. package/dist/exports/config.context.js +8 -0
  95. package/dist/exports/interaction.js +1 -1
  96. package/dist/exports/item.context.d.ts +2 -2
  97. package/dist/exports/item.context.js +1 -1
  98. package/dist/exports/qti-assessment-item.context.js +1 -1
  99. package/dist/exports/qti-condition-expression.js +3 -3
  100. package/dist/exports/qti-expression.js +2 -2
  101. package/dist/exports/session.context.d.ts +12 -0
  102. package/dist/exports/session.context.js +8 -0
  103. package/dist/exports/test.context.d.ts +16 -0
  104. package/dist/exports/test.context.js +8 -0
  105. package/dist/index.d.ts +9 -4
  106. package/dist/index.js +58 -55
  107. package/dist/qti-components/index.d.ts +2 -2
  108. package/dist/qti-components/index.js +7 -7
  109. package/dist/qti-components-jsx.d.ts +124 -98
  110. package/dist/qti-item/core/index.js +2 -3
  111. package/dist/qti-loader/index.d.ts +1 -1
  112. package/dist/qti-loader/index.js +1 -1
  113. package/dist/{qti-response-declaration-Di9CsqiJ.d.ts → qti-response-declaration-CyOeVboh.d.ts} +2 -2
  114. package/dist/qti-test/components/index.d.ts +10 -4
  115. package/dist/qti-test/components/index.js +28 -19
  116. package/dist/qti-test/components/test-container.d.ts +3 -1
  117. package/dist/qti-test/components/test-container.js +6 -3778
  118. package/dist/qti-test/components/test-container.js.map +1 -1
  119. package/dist/qti-test/components/test-end-attempt.d.ts +4 -11
  120. package/dist/qti-test/components/test-end-attempt.js +3 -5
  121. package/dist/qti-test/components/test-item-link.d.ts +2 -11
  122. package/dist/qti-test/components/test-item-link.js +1 -5
  123. package/dist/qti-test/components/test-navigation.d.ts +35 -0
  124. package/dist/qti-test/components/test-navigation.js +12 -0
  125. package/dist/qti-test/components/test-navigation.js.map +1 -0
  126. package/dist/qti-test/components/test-next.d.ts +12 -12
  127. package/dist/qti-test/components/test-next.js +4 -4
  128. package/dist/qti-test/components/test-paging-buttons-stamp.d.ts +8 -15
  129. package/dist/qti-test/components/test-paging-buttons-stamp.js +2 -5
  130. package/dist/qti-test/components/test-prev.d.ts +11 -12
  131. package/dist/qti-test/components/test-prev.js +4 -4
  132. package/dist/qti-test/components/test-show-correct-response.d.ts +4 -11
  133. package/dist/qti-test/components/test-show-correct-response.js +3 -5
  134. package/dist/qti-test/components/test-view.d.ts +3 -12
  135. package/dist/qti-test/components/test-view.js +2 -4
  136. package/dist/qti-test/core/index.d.ts +18 -48
  137. package/dist/qti-test/core/index.js +7 -12
  138. package/dist/{test.context-C2LBA3w4.d.ts → qti-test-part-zX9tOUbA.d.ts} +17 -33
  139. package/dist/vscode.html-custom-data.json +39 -36
  140. package/package.json +20 -19
  141. package/cdn/chunk-4DFVJE2A.js +0 -48
  142. package/cdn/chunk-4I75QSIL.js +0 -8
  143. package/cdn/chunk-5WCOPF7O.js +0 -73
  144. package/cdn/chunk-66PERJA3.js +0 -939
  145. package/cdn/chunk-6WNSQ7U6.js +0 -939
  146. package/cdn/chunk-AT2C24P4.js +0 -8
  147. package/cdn/chunk-BLKKKK6C.js +0 -11
  148. package/cdn/chunk-DC2R556M.js +0 -5
  149. package/cdn/chunk-GALSGMIP.js +0 -5
  150. package/cdn/chunk-IXSX4SJX.js +0 -1
  151. package/cdn/chunk-KYOTSBCX.js +0 -1
  152. package/cdn/chunk-L4TDHAKL.js +0 -24
  153. package/cdn/chunk-LVW3MHTI.js +0 -23
  154. package/cdn/chunk-M6AATWPS.js +0 -59
  155. package/cdn/chunk-MFWSHIPH.js +0 -17
  156. package/cdn/chunk-QGKK4T2J.js +0 -8
  157. package/cdn/chunk-ROXN2HIJ.js +0 -8
  158. package/cdn/chunk-SQDSHH6N.js +0 -3539
  159. package/cdn/chunk-TJMODUN5.js +0 -8
  160. package/cdn/chunk-VI2WKTN4.js +0 -1
  161. package/cdn/chunk-Z6SKK5ZX.js +0 -8
  162. package/cdn/chunks/chunk-3GO57DNP.js +0 -0
  163. package/cdn/chunks/chunk-3V6LA7B3.js +0 -8
  164. package/cdn/chunks/chunk-4PEUIMDK.js +0 -8
  165. package/cdn/chunks/chunk-4WXQYE2P.js +0 -8
  166. package/cdn/chunks/chunk-5P7CTN7Q.js +0 -11
  167. package/cdn/chunks/chunk-5X76K77R.js +0 -8
  168. package/cdn/chunks/chunk-6MCYE7P5.js +0 -1
  169. package/cdn/chunks/chunk-6PW2L463.js +0 -0
  170. package/cdn/chunks/chunk-6S4CDN3T.js +0 -43
  171. package/cdn/chunks/chunk-76VGZJCP.js +0 -934
  172. package/cdn/chunks/chunk-7XYBFL7U.js +0 -934
  173. package/cdn/chunks/chunk-AJJJAZWM.js +0 -1
  174. package/cdn/chunks/chunk-ARHBUT6F.js +0 -5
  175. package/cdn/chunks/chunk-AUHO2E7V.js +0 -934
  176. package/cdn/chunks/chunk-CZ3CSGCE.js +0 -934
  177. package/cdn/chunks/chunk-D3GR6AUG.js +0 -43
  178. package/cdn/chunks/chunk-DZCKF45D.js +0 -5
  179. package/cdn/chunks/chunk-EFU4L43Q.js +0 -8
  180. package/cdn/chunks/chunk-FM5C34DM.js +0 -934
  181. package/cdn/chunks/chunk-FRS2J3OS.js +0 -59
  182. package/cdn/chunks/chunk-GMK2YRB2.js +0 -934
  183. package/cdn/chunks/chunk-H2V2RXUW.js +0 -11
  184. package/cdn/chunks/chunk-HUMOYGEM.js +0 -43
  185. package/cdn/chunks/chunk-IMJOPCFR.js +0 -1
  186. package/cdn/chunks/chunk-IQZ7AOCQ.js +0 -8
  187. package/cdn/chunks/chunk-J3JSSCM6.js +0 -5
  188. package/cdn/chunks/chunk-KHLUVO6Y.js +0 -8
  189. package/cdn/chunks/chunk-LARBLB7K.js +0 -8
  190. package/cdn/chunks/chunk-LNFCEHB3.js +0 -934
  191. package/cdn/chunks/chunk-MJMONWKB.js +0 -3539
  192. package/cdn/chunks/chunk-N5OHGRGG.js +0 -8
  193. package/cdn/chunks/chunk-NDHSIO2G.js +0 -8
  194. package/cdn/chunks/chunk-NRY3WHJD.js +0 -5
  195. package/cdn/chunks/chunk-PKT2SJQD.js +0 -8
  196. package/cdn/chunks/chunk-PPWEIKLT.js +0 -1
  197. package/cdn/chunks/chunk-PT523RSK.js +0 -8
  198. package/cdn/chunks/chunk-QD3NT5PG.js +0 -934
  199. package/cdn/chunks/chunk-QTK4CPHP.js +0 -8
  200. package/cdn/chunks/chunk-QV6I5NVQ.js +0 -8
  201. package/cdn/chunks/chunk-R33OODNX.js +0 -1
  202. package/cdn/chunks/chunk-RIXTWE2H.js +0 -8
  203. package/cdn/chunks/chunk-ROZIP5LG.js +0 -8
  204. package/cdn/chunks/chunk-RPZVSBLM.js +0 -8
  205. package/cdn/chunks/chunk-SXM25YH3.js +0 -934
  206. package/cdn/chunks/chunk-TEYXRLTI.js +0 -8
  207. package/cdn/chunks/chunk-TQBDBMWL.js +0 -5
  208. package/cdn/chunks/chunk-TV3SPOLH.js +0 -8
  209. package/cdn/chunks/chunk-TVDTF6P6.js +0 -934
  210. package/cdn/chunks/chunk-U2TE6TOV.js +0 -934
  211. package/cdn/chunks/chunk-W5Y3ZU2W.js +0 -5
  212. package/cdn/chunks/chunk-WPGJ54IP.js +0 -1
  213. package/cdn/chunks/chunk-YHWMZAZD.js +0 -43
  214. package/cdn/chunks/chunk-YVZ742ID.js +0 -934
  215. package/cdn/chunks/chunk-YWH4TGMA.js +0 -5
  216. package/cdn/chunks/chunk-YXR6KSZI.js +0 -11
  217. package/cdn/qti-components/index.global.js +0 -226
  218. package/cdn/qti-item/components/index.global.js +0 -149
  219. package/cdn/qti-item/components/index.js +0 -3549
  220. package/cdn/qti-item/components/item-container.global.js +0 -149
  221. package/cdn/qti-item/components/item-container.js +0 -3549
  222. package/cdn/qti-item/core/index.global.js +0 -149
  223. package/cdn/qti-item/index.global.js +0 -149
  224. package/cdn/qti-item/index.js +0 -3549
  225. package/cdn/qti-item/qti-item.global.js +0 -114
  226. package/cdn/qti-item/qti-item.js +0 -1
  227. package/cdn/qti-loader/index.global.js +0 -1
  228. package/cdn/qti-test/components/index.global.js +0 -207
  229. package/cdn/qti-test/components/styles.global.js +0 -44
  230. package/cdn/qti-test/components/test-component.abstract.global.js +0 -170
  231. package/cdn/qti-test/components/test-component.abstract.js +0 -1
  232. package/cdn/qti-test/components/test-container.global.js +0 -149
  233. package/cdn/qti-test/components/test-item-link.global.js +0 -170
  234. package/cdn/qti-test/components/test-next.global.js +0 -170
  235. package/cdn/qti-test/components/test-next.spec.css +0 -1
  236. package/cdn/qti-test/components/test-next.spec.global.js +0 -64
  237. package/cdn/qti-test/components/test-next.spec.js +0 -713
  238. package/cdn/qti-test/components/test-paging-buttons-stamp.global.js +0 -207
  239. package/cdn/qti-test/components/test-prev.global.js +0 -170
  240. package/cdn/qti-test/components/test-view.global.js +0 -170
  241. package/cdn/qti-test/context/index.global.js +0 -58
  242. package/cdn/qti-test/context/index.js +0 -1
  243. package/cdn/qti-test/context/test.context.global.js +0 -58
  244. package/cdn/qti-test/context/test.context.js +0 -1
  245. package/cdn/qti-test/core/index.global.js +0 -205
  246. package/cdn/qti-test/index.global.js +0 -242
  247. package/cdn/qti-test/index.js +0 -3598
  248. package/cdn/qti-test/mixins/index.global.js +0 -1
  249. package/cdn/qti-test/mixins/index.js +0 -23
  250. package/cdn/qti-test/mixins/test-loader.mixin.global.js +0 -1
  251. package/cdn/qti-test/mixins/test-loader.mixin.js +0 -23
  252. package/cdn/qti-test/mixins/test-navigation.mixin.global.js +0 -1
  253. package/cdn/qti-test/mixins/test-navigation.mixin.js +0 -1
  254. package/cdn/qti-test/mixins/test-view.mixin.global.js +0 -1
  255. package/cdn/qti-test/mixins/test-view.mixin.js +0 -1
  256. package/cdn/qti-test/qti-assessment-test/index.global.js +0 -170
  257. package/cdn/qti-test/qti-assessment-test/index.js +0 -1
  258. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.global.js +0 -170
  259. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.js +0 -1
  260. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.global.js +0 -170
  261. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.js +0 -1
  262. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.global.js +0 -170
  263. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.js +0 -1
  264. package/cdn/qti-test/qti-assessment-test/qti-test-part.global.js +0 -114
  265. package/cdn/qti-test/qti-assessment-test/qti-test-part.js +0 -1
  266. package/cdn/qti-test/qti-test.global.js +0 -170
  267. package/cdn/qti-test/qti-test.js +0 -23
  268. package/cdn/qti-test/test-base.global.js +0 -170
  269. package/cdn/qti-test/test-base.js +0 -1
  270. package/cdn/qti-transformers/index.global.js +0 -1
  271. package/dist/chunk-2CHF3TMY.js.map +0 -1
  272. package/dist/chunk-2LWLX7WV.js +0 -6307
  273. package/dist/chunk-2LWLX7WV.js.map +0 -1
  274. package/dist/chunk-2OA7E3E7.js +0 -294
  275. package/dist/chunk-2OA7E3E7.js.map +0 -1
  276. package/dist/chunk-3G364JZC.js +0 -72
  277. package/dist/chunk-3G364JZC.js.map +0 -1
  278. package/dist/chunk-44VE5POH.js +0 -55
  279. package/dist/chunk-4YG2FPKK.js +0 -31
  280. package/dist/chunk-4YG2FPKK.js.map +0 -1
  281. package/dist/chunk-6TUE644E.js +0 -569
  282. package/dist/chunk-6TUE644E.js.map +0 -1
  283. package/dist/chunk-6ZMD232X.js +0 -78
  284. package/dist/chunk-6ZMD232X.js.map +0 -1
  285. package/dist/chunk-AYRSHIHA.js +0 -50
  286. package/dist/chunk-AYRSHIHA.js.map +0 -1
  287. package/dist/chunk-BN32D5J2.js +0 -43
  288. package/dist/chunk-BN32D5J2.js.map +0 -1
  289. package/dist/chunk-CJRXRBRQ.js +0 -50
  290. package/dist/chunk-CJRXRBRQ.js.map +0 -1
  291. package/dist/chunk-GPJ6WTE5.js +0 -118
  292. package/dist/chunk-GPJ6WTE5.js.map +0 -1
  293. package/dist/chunk-KAUHKHPH.js +0 -50
  294. package/dist/chunk-KAUHKHPH.js.map +0 -1
  295. package/dist/chunk-MAC76UNI.js +0 -1
  296. package/dist/chunk-QYN5S4EM.js +0 -107
  297. package/dist/chunk-QYN5S4EM.js.map +0 -1
  298. package/dist/chunk-UB5K44DB.js +0 -30
  299. package/dist/chunk-UB5K44DB.js.map +0 -1
  300. package/dist/chunk-UJTJIU3C.js +0 -43
  301. package/dist/chunk-UJTJIU3C.js.map +0 -1
  302. package/dist/chunk-XVQZ5JI5.js +0 -50
  303. package/dist/chunk-XVQZ5JI5.js.map +0 -1
  304. package/dist/chunk-XW3PQRKW.js +0 -6306
  305. package/dist/chunk-XW3PQRKW.js.map +0 -1
  306. package/dist/chunk-YQ7EXOAK.js +0 -10
  307. package/dist/chunk-YQ7EXOAK.js.map +0 -1
  308. package/dist/chunks/chunk-2V6LQV2K.js +0 -50
  309. package/dist/chunks/chunk-2V6LQV2K.js.map +0 -1
  310. package/dist/chunks/chunk-3EU75IUF.js +0 -118
  311. package/dist/chunks/chunk-3EU75IUF.js.map +0 -1
  312. package/dist/chunks/chunk-3QQFMVDS.js +0 -118
  313. package/dist/chunks/chunk-3QQFMVDS.js.map +0 -1
  314. package/dist/chunks/chunk-4GNVYCBN.js +0 -627
  315. package/dist/chunks/chunk-4GNVYCBN.js.map +0 -1
  316. package/dist/chunks/chunk-4MQV5IRV.js +0 -59
  317. package/dist/chunks/chunk-4MQV5IRV.js.map +0 -1
  318. package/dist/chunks/chunk-4WVLWWYJ.js +0 -50
  319. package/dist/chunks/chunk-4WVLWWYJ.js.map +0 -1
  320. package/dist/chunks/chunk-5KVGRLYT.js +0 -10
  321. package/dist/chunks/chunk-5KVGRLYT.js.map +0 -1
  322. package/dist/chunks/chunk-5PCD2B62.js +0 -6091
  323. package/dist/chunks/chunk-5PCD2B62.js.map +0 -1
  324. package/dist/chunks/chunk-5RTLOB3Q.js +0 -59
  325. package/dist/chunks/chunk-5RTLOB3Q.js.map +0 -1
  326. package/dist/chunks/chunk-6JXR63MH.js +0 -50
  327. package/dist/chunks/chunk-6JXR63MH.js.map +0 -1
  328. package/dist/chunks/chunk-6PAEJQSQ.js +0 -6058
  329. package/dist/chunks/chunk-6PAEJQSQ.js.map +0 -1
  330. package/dist/chunks/chunk-6QT4LIPL.js +0 -623
  331. package/dist/chunks/chunk-6QT4LIPL.js.map +0 -1
  332. package/dist/chunks/chunk-7QMCKYDR.js +0 -43
  333. package/dist/chunks/chunk-7QMCKYDR.js.map +0 -1
  334. package/dist/chunks/chunk-A24F75DB.js +0 -72
  335. package/dist/chunks/chunk-A24F75DB.js.map +0 -1
  336. package/dist/chunks/chunk-AUWATZ65.js +0 -10
  337. package/dist/chunks/chunk-AUWATZ65.js.map +0 -1
  338. package/dist/chunks/chunk-AXTEKPP5.js +0 -6084
  339. package/dist/chunks/chunk-AXTEKPP5.js.map +0 -1
  340. package/dist/chunks/chunk-B6MJCAOF.js +0 -6063
  341. package/dist/chunks/chunk-B6MJCAOF.js.map +0 -1
  342. package/dist/chunks/chunk-BJ2JLJIJ.js +0 -623
  343. package/dist/chunks/chunk-BJ2JLJIJ.js.map +0 -1
  344. package/dist/chunks/chunk-BPHQLJWE.js.map +0 -1
  345. package/dist/chunks/chunk-CD3E4M5Y.js +0 -107
  346. package/dist/chunks/chunk-CD3E4M5Y.js.map +0 -1
  347. package/dist/chunks/chunk-CEXAR7BF.js +0 -52
  348. package/dist/chunks/chunk-CEXAR7BF.js.map +0 -1
  349. package/dist/chunks/chunk-CWYAQA25.js +0 -6067
  350. package/dist/chunks/chunk-CWYAQA25.js.map +0 -1
  351. package/dist/chunks/chunk-D3QX5N57.js +0 -6117
  352. package/dist/chunks/chunk-D3QX5N57.js.map +0 -1
  353. package/dist/chunks/chunk-DLUJN2FW.js.map +0 -1
  354. package/dist/chunks/chunk-DNHDFXTV.js +0 -59
  355. package/dist/chunks/chunk-DNHDFXTV.js.map +0 -1
  356. package/dist/chunks/chunk-E4TWZ2DL.js.map +0 -1
  357. package/dist/chunks/chunk-FV7HWK54.js.map +0 -1
  358. package/dist/chunks/chunk-GQ5P3NWC.js.map +0 -1
  359. package/dist/chunks/chunk-GSWZT6N2.js +0 -50
  360. package/dist/chunks/chunk-GSWZT6N2.js.map +0 -1
  361. package/dist/chunks/chunk-HHVRU3AJ.js +0 -107
  362. package/dist/chunks/chunk-HHVRU3AJ.js.map +0 -1
  363. package/dist/chunks/chunk-HOTNM5DT.js +0 -1
  364. package/dist/chunks/chunk-IWG66KQQ.js +0 -107
  365. package/dist/chunks/chunk-IWG66KQQ.js.map +0 -1
  366. package/dist/chunks/chunk-J2SHENRN.js.map +0 -1
  367. package/dist/chunks/chunk-K6ATVWMP.js +0 -6091
  368. package/dist/chunks/chunk-K6ATVWMP.js.map +0 -1
  369. package/dist/chunks/chunk-KOEILLVS.js.map +0 -1
  370. package/dist/chunks/chunk-KYAIMBP5.js +0 -78
  371. package/dist/chunks/chunk-KYAIMBP5.js.map +0 -1
  372. package/dist/chunks/chunk-LNISKMIL.js +0 -6063
  373. package/dist/chunks/chunk-LNISKMIL.js.map +0 -1
  374. package/dist/chunks/chunk-LNKJEW5E.js +0 -627
  375. package/dist/chunks/chunk-LNKJEW5E.js.map +0 -1
  376. package/dist/chunks/chunk-LXJA3VP2.js +0 -72
  377. package/dist/chunks/chunk-LXJA3VP2.js.map +0 -1
  378. package/dist/chunks/chunk-MLT7V47R.js +0 -100
  379. package/dist/chunks/chunk-MLT7V47R.js.map +0 -1
  380. package/dist/chunks/chunk-N5FPZNMX.js +0 -43
  381. package/dist/chunks/chunk-N5FPZNMX.js.map +0 -1
  382. package/dist/chunks/chunk-NHA53UTY.js.map +0 -1
  383. package/dist/chunks/chunk-NZQKGIJP.js.map +0 -1
  384. package/dist/chunks/chunk-O6WEZVEM.js +0 -43
  385. package/dist/chunks/chunk-O6WEZVEM.js.map +0 -1
  386. package/dist/chunks/chunk-OIRWOI3E.js.map +0 -1
  387. package/dist/chunks/chunk-PWOY6REC.js +0 -6064
  388. package/dist/chunks/chunk-PWOY6REC.js.map +0 -1
  389. package/dist/chunks/chunk-QJELKGWM.js +0 -6061
  390. package/dist/chunks/chunk-QJELKGWM.js.map +0 -1
  391. package/dist/chunks/chunk-QUB54PXZ.js +0 -50
  392. package/dist/chunks/chunk-QUB54PXZ.js.map +0 -1
  393. package/dist/chunks/chunk-RX3BRYYI.js +0 -59
  394. package/dist/chunks/chunk-RX3BRYYI.js.map +0 -1
  395. package/dist/chunks/chunk-UEEMM6H2.js +0 -6090
  396. package/dist/chunks/chunk-UEEMM6H2.js.map +0 -1
  397. package/dist/chunks/chunk-UFYWCLXF.js +0 -10
  398. package/dist/chunks/chunk-UFYWCLXF.js.map +0 -1
  399. package/dist/chunks/chunk-UN2IFSGC.js +0 -1
  400. package/dist/chunks/chunk-VAPB5TN4.js +0 -46
  401. package/dist/chunks/chunk-VAPB5TN4.js.map +0 -1
  402. package/dist/chunks/chunk-VBF3GCZK.js +0 -50
  403. package/dist/chunks/chunk-VBF3GCZK.js.map +0 -1
  404. package/dist/chunks/chunk-W4272Q5U.js.map +0 -1
  405. package/dist/chunks/chunk-WWN5AD6V.js.map +0 -1
  406. package/dist/chunks/chunk-X226BX2U.js +0 -78
  407. package/dist/chunks/chunk-X226BX2U.js.map +0 -1
  408. package/dist/chunks/chunk-XCHS3RTZ.js +0 -107
  409. package/dist/chunks/chunk-XCHS3RTZ.js.map +0 -1
  410. package/dist/chunks/chunk-YFC3BVN2.js +0 -78
  411. package/dist/chunks/chunk-YFC3BVN2.js.map +0 -1
  412. package/dist/chunks/chunk-YOXF6JPS.js.map +0 -1
  413. package/dist/chunks/chunk-YQB6YLNW.js +0 -78
  414. package/dist/chunks/chunk-YQB6YLNW.js.map +0 -1
  415. package/dist/chunks/chunk-Z5THRO6Z.js +0 -46
  416. package/dist/chunks/chunk-Z5THRO6Z.js.map +0 -1
  417. package/dist/chunks/chunk-ZHAJ3CMP.js +0 -6091
  418. package/dist/chunks/chunk-ZHAJ3CMP.js.map +0 -1
  419. package/dist/chunks/chunk-ZPNJ2HP5.js +0 -71
  420. package/dist/chunks/chunk-ZPNJ2HP5.js.map +0 -1
  421. package/dist/chunks/chunk-ZQXZ6PK7.js +0 -649
  422. package/dist/chunks/chunk-ZQXZ6PK7.js.map +0 -1
  423. package/dist/custom-element-eslint-rules.js +0 -337
  424. package/dist/custom-elements.json +0 -27158
  425. package/dist/loader/index.d.ts +0 -20
  426. package/dist/loader/index.js +0 -310
  427. package/dist/loader/index.js.map +0 -1
  428. package/dist/qti-components/index.cjs +0 -6773
  429. package/dist/qti-components/index.cjs.map +0 -1
  430. package/dist/qti-components/index.d.cts +0 -150
  431. package/dist/qti-item/components/index.d.ts +0 -3
  432. package/dist/qti-item/components/index.js +0 -3856
  433. package/dist/qti-item/components/index.js.map +0 -1
  434. package/dist/qti-item/components/item-container.d.ts +0 -40
  435. package/dist/qti-item/components/item-container.js +0 -3856
  436. package/dist/qti-item/components/item-container.js.map +0 -1
  437. package/dist/qti-item/index.cjs +0 -89
  438. package/dist/qti-item/index.cjs.map +0 -1
  439. package/dist/qti-item/index.d.cts +0 -24
  440. package/dist/qti-item/index.d.ts +0 -4
  441. package/dist/qti-item/index.js +0 -3869
  442. package/dist/qti-item/index.js.map +0 -1
  443. package/dist/qti-item/qti-item.d.ts +0 -25
  444. package/dist/qti-item/qti-item.js +0 -26
  445. package/dist/qti-item/qti-item.js.map +0 -1
  446. package/dist/qti-loader/index.cjs +0 -332
  447. package/dist/qti-loader/index.cjs.map +0 -1
  448. package/dist/qti-loader/index.d.cts +0 -20
  449. package/dist/qti-response-declaration-DAeBp8HH.d.ts +0 -1008
  450. package/dist/qti-response-declaration-ucAqd0qK.d.ts +0 -1034
  451. package/dist/qti-simple-choice-3M44uWiN.d.ts +0 -1153
  452. package/dist/qti-simple-choice-B5GnzbqW.d.ts +0 -1080
  453. package/dist/qti-simple-choice-BOLF9wXz.d.ts +0 -1170
  454. package/dist/qti-simple-choice-BeixIkA0.d.ts +0 -1088
  455. package/dist/qti-simple-choice-BiEjEO6s.d.ts +0 -1152
  456. package/dist/qti-simple-choice-Bo_ikO6H.d.ts +0 -1198
  457. package/dist/qti-simple-choice-C0CcrtK5.d.ts +0 -1169
  458. package/dist/qti-simple-choice-Cgh1-Jbr.d.cts +0 -1185
  459. package/dist/qti-simple-choice-Cgh1-Jbr.d.ts +0 -1185
  460. package/dist/qti-simple-choice-Cn5y-Ta8.d.ts +0 -1158
  461. package/dist/qti-simple-choice-D0GiMrqD.d.ts +0 -1168
  462. package/dist/qti-simple-choice-DxWcdKHi.d.ts +0 -1158
  463. package/dist/qti-simple-choice-R_LxBTp8.d.ts +0 -1158
  464. package/dist/qti-simple-choice-hAIyfF0z.d.ts +0 -1114
  465. package/dist/qti-simple-choice-o4rje1RA.d.ts +0 -1176
  466. package/dist/qti-simple-choice-v2GxpPNh.d.ts +0 -1181
  467. package/dist/qti-test/components/test-component.abstract.d.ts +0 -26
  468. package/dist/qti-test/components/test-component.abstract.js +0 -11
  469. package/dist/qti-test/components/test-next.spec.css +0 -2481
  470. package/dist/qti-test/components/test-next.spec.css.map +0 -1
  471. package/dist/qti-test/components/test-next.spec.d.ts +0 -13
  472. package/dist/qti-test/components/test-next.spec.js +0 -45904
  473. package/dist/qti-test/components/test-next.spec.js.map +0 -1
  474. package/dist/qti-test/context/index.d.ts +0 -6
  475. package/dist/qti-test/context/index.js +0 -9
  476. package/dist/qti-test/context/index.js.map +0 -1
  477. package/dist/qti-test/context/test.context.d.ts +0 -6
  478. package/dist/qti-test/context/test.context.js +0 -9
  479. package/dist/qti-test/context/test.context.js.map +0 -1
  480. package/dist/qti-test/index.cjs +0 -4823
  481. package/dist/qti-test/index.cjs.map +0 -1
  482. package/dist/qti-test/index.d.cts +0 -304
  483. package/dist/qti-test/index.d.ts +0 -14
  484. package/dist/qti-test/index.js +0 -4746
  485. package/dist/qti-test/index.js.map +0 -1
  486. package/dist/qti-test/mixins/index.d.ts +0 -8
  487. package/dist/qti-test/mixins/index.js +0 -350
  488. package/dist/qti-test/mixins/index.js.map +0 -1
  489. package/dist/qti-test/mixins/test-loader.mixin.d.ts +0 -8
  490. package/dist/qti-test/mixins/test-loader.mixin.js +0 -240
  491. package/dist/qti-test/mixins/test-loader.mixin.js.map +0 -1
  492. package/dist/qti-test/mixins/test-navigation.mixin.d.ts +0 -22
  493. package/dist/qti-test/mixins/test-navigation.mixin.js +0 -64
  494. package/dist/qti-test/mixins/test-navigation.mixin.js.map +0 -1
  495. package/dist/qti-test/mixins/test-view.mixin.d.ts +0 -6
  496. package/dist/qti-test/mixins/test-view.mixin.js +0 -50
  497. package/dist/qti-test/mixins/test-view.mixin.js.map +0 -1
  498. package/dist/qti-test/qti-assessment-test/index.d.ts +0 -6
  499. package/dist/qti-test/qti-assessment-test/index.js +0 -221
  500. package/dist/qti-test/qti-assessment-test/index.js.map +0 -1
  501. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.d.ts +0 -6
  502. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js +0 -85
  503. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js.map +0 -1
  504. package/dist/qti-test/qti-assessment-test/qti-assessment-section.d.ts +0 -6
  505. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js +0 -73
  506. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js.map +0 -1
  507. package/dist/qti-test/qti-assessment-test/qti-assessment-test.d.ts +0 -6
  508. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js +0 -54
  509. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js.map +0 -1
  510. package/dist/qti-test/qti-assessment-test/qti-test-part.d.ts +0 -19
  511. package/dist/qti-test/qti-assessment-test/qti-test-part.js +0 -62
  512. package/dist/qti-test/qti-assessment-test/qti-test-part.js.map +0 -1
  513. package/dist/qti-test/qti-test.d.ts +0 -68
  514. package/dist/qti-test/qti-test.js +0 -500
  515. package/dist/qti-test/qti-test.js.map +0 -1
  516. package/dist/qti-test/test-base.d.ts +0 -6
  517. package/dist/qti-test/test-base.js +0 -137
  518. package/dist/qti-test/test-base.js.map +0 -1
  519. package/dist/qti-transformers/index.cjs +0 -316
  520. package/dist/qti-transformers/index.cjs.map +0 -1
  521. package/dist/qti-transformers/index.d.cts +0 -75
  522. package/dist/test-base-BJwG9Ie8.d.ts +0 -109
  523. package/dist/test.context-Bx-606B3.d.ts +0 -99
  524. package/dist/test.context-CB5V4xJz.d.ts +0 -99
  525. package/dist/test.context-CaENAJNk.d.ts +0 -101
  526. package/dist/test.context-CmsDQ8k2.d.ts +0 -99
  527. package/dist/transformers/index.d.ts +0 -76
  528. package/dist/transformers/index.js +0 -293
  529. package/dist/transformers/index.js.map +0 -1
  530. /package/cdn/{chunk-22HAPLRD.js → chunks/chunk-MTNLMWSG.js} +0 -0
  531. /package/dist/{chunk-44VE5POH.js.map → chunks/chunk-CBYNKDSF.js.map} +0 -0
  532. /package/dist/chunks/{chunk-XSI6FXGD.js.map → chunk-OOQLWOYU.js.map} +0 -0
  533. /package/dist/{chunk-MAC76UNI.js.map → exports/computed.context.js.map} +0 -0
  534. /package/dist/{chunks/chunk-HOTNM5DT.js.map → exports/config.context.js.map} +0 -0
  535. /package/dist/{chunks/chunk-UN2IFSGC.js.map → exports/session.context.js.map} +0 -0
  536. /package/dist/{qti-test/components/test-component.abstract.js.map → exports/test.context.js.map} +0 -0
@@ -1,125 +1,63 @@
1
1
  import {
2
- item_default
3
- } from "./chunk-NZQKGIJP.js";
2
+ sessionContext
3
+ } from "./chunk-QTH3WLGY.js";
4
4
  import {
5
- qtiTransformItem,
6
- qtiTransformTest
7
- } from "./chunk-XDMSEAYC.js";
8
- import {
9
- testContext,
10
- testElement
11
- } from "./chunk-AUWATZ65.js";
5
+ testContext
6
+ } from "./chunk-ODLYMQOS.js";
12
7
  import {
13
- watch
14
- } from "./chunk-ELDMXTUQ.js";
8
+ qtiTransformItem
9
+ } from "./chunk-XDMSEAYC.js";
15
10
  import {
16
11
  __decorateClass
17
12
  } from "./chunk-H2JE6IVU.js";
18
13
 
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
14
  // src/lib/qti-test/core/qti-test.ts
97
- import { html as html2 } from "lit";
98
- import { customElement as customElement2 } from "lit/decorators.js";
15
+ import { html } from "lit";
16
+ import { customElement } from "lit/decorators.js";
99
17
 
100
18
  // src/lib/qti-test/core/mixins/test-loader.mixin.ts
19
+ import { property } from "lit/decorators.js";
20
+ var setSessionData = (key, value) => sessionStorage.setItem(key, JSON.stringify(value));
21
+ var getSessionData = (key) => sessionStorage.getItem(key) ? JSON.parse(sessionStorage.getItem(key)) : null;
101
22
  var TestLoaderMixin = (superClass) => {
102
23
  class TestLoaderClass extends superClass {
103
- // private testURL = '';
104
24
  constructor(...args) {
105
25
  super(...args);
106
- this.addEventListener("qti-assessment-test-connected", () => {
107
- });
26
+ this.autoStoreRestoreContext = null;
27
+ this.navItemId = null;
108
28
  this.addEventListener("qti-load-item-request", ({ detail }) => {
109
29
  detail.promise = (async () => {
110
- const api = await qtiTransformItem().load(
111
- `${detail.href}`,
112
- detail.cancelPreviousRequest
113
- );
30
+ const api = await qtiTransformItem().load(`${detail.href}`, detail.cancelPreviousRequest);
114
31
  return api.htmlDoc();
115
32
  })();
116
33
  });
117
- this.addEventListener("qti-interaction-changed", (_e) => {
118
- });
119
- this.addEventListener("qti-outcome-changed", () => {
120
- });
34
+ }
35
+ async connectedCallback() {
36
+ super.connectedCallback();
37
+ if (this.navItemId) {
38
+ this.sessionContext = { ...this.sessionContext, navItemId: this.navItemId };
39
+ }
40
+ if (this.autoStoreRestoreContext) {
41
+ const testContext2 = getSessionData(this.autoStoreRestoreContext);
42
+ if (testContext2) {
43
+ this.testContext = testContext2;
44
+ }
45
+ }
46
+ }
47
+ updated(changedProperties) {
48
+ if (changedProperties.has("testContext")) {
49
+ if (this.autoStoreRestoreContext) {
50
+ setSessionData(this.autoStoreRestoreContext, this.testContext);
51
+ }
52
+ }
121
53
  }
122
54
  }
55
+ __decorateClass([
56
+ property({ type: String, attribute: "auto-store-restore" })
57
+ ], TestLoaderClass.prototype, "autoStoreRestoreContext", 2);
58
+ __decorateClass([
59
+ property({ type: String, attribute: "nav-item-id" })
60
+ ], TestLoaderClass.prototype, "navItemId", 2);
123
61
  return TestLoaderClass;
124
62
  };
125
63
 
@@ -137,21 +75,22 @@ var TestNavigationMixin = (superClass) => {
137
75
  const promise = this._loadItemRequest(itemRefEl.href, false);
138
76
  const navPartId = itemRefEl.closest("qti-test-part").identifier;
139
77
  const navSectionId = itemRefEl.closest("qti-assessment-section").identifier;
140
- this._testContext = { ...this._testContext, navPartId, navSectionId, navItemId, navItemLoading: true };
78
+ this.sessionContext = { ...this.sessionContext, navPartId, navSectionId, navItemId, navItemLoading: true };
141
79
  if (promise) {
142
80
  promise.then((doc) => {
143
81
  itemRefEl.xmlDoc = doc;
144
82
  requestAnimationFrame(
145
83
  () => this.dispatchEvent(new CustomEvent("qti-item-connected", { bubbles: true, composed: true }))
146
84
  );
147
- this._testContext = { ...this._testContext, navItemLoading: false };
85
+ this.sessionContext = { ...this.sessionContext, navItemLoading: false };
148
86
  }).catch((error) => console.error("Failed to load item:", error));
149
87
  } else {
150
88
  console.info("Load item request was not handled:", itemRefEl.href);
151
89
  }
152
90
  });
153
- this.addEventListener("qti-assessment-test-connected", () => {
154
- let navItemId = this._testContext.navItemId;
91
+ this.addEventListener("qti-assessment-test-connected", (e) => {
92
+ this.testElement = e.detail;
93
+ let navItemId = this.sessionContext.navItemId;
155
94
  if (!navItemId) {
156
95
  const itemRefEl = this.testElement.querySelector("qti-assessment-item-ref");
157
96
  navItemId = itemRefEl.identifier;
@@ -189,9 +128,9 @@ var TestViewMixin = (superClass) => {
189
128
  class TestViewClass extends superClass {
190
129
  constructor(...args) {
191
130
  super(...args);
192
- this._testContext = { ...this._testContext, view: "candidate" };
131
+ this.sessionContext = { ...this.sessionContext, view: "candidate" };
193
132
  this.addEventListener("on-test-switch-view", (e) => {
194
- this._testContext = { ...this._testContext, view: e.detail };
133
+ this.sessionContext = { ...this.sessionContext, view: e.detail };
195
134
  this._updateElementView();
196
135
  });
197
136
  this.addEventListener("qti-assessment-test-connected", () => {
@@ -204,7 +143,7 @@ var TestViewMixin = (superClass) => {
204
143
  }
205
144
  willUpdate(changedProperties) {
206
145
  super.willUpdate(changedProperties);
207
- if (changedProperties.has("_testContext")) {
146
+ if (changedProperties.has("sessionContext")) {
208
147
  this._updateElementView();
209
148
  }
210
149
  }
@@ -213,19 +152,19 @@ var TestViewMixin = (superClass) => {
213
152
  if (this.testElement && this.testElement) {
214
153
  const viewElements = Array.from(this.testElement.querySelectorAll("[view]"));
215
154
  viewElements.forEach((element) => {
216
- element.classList.toggle("show", element.getAttribute("view") === this._testContext.view);
155
+ element.classList.toggle("show", element.getAttribute("view") === this.sessionContext.view);
217
156
  });
218
157
  const assessmentItem = this.testElement.querySelector(
219
- `qti-assessment-item[identifier="${this._testContext.navItemId}"]`
158
+ `qti-assessment-item[identifier="${this.sessionContext.navItemId}"]`
220
159
  );
221
160
  if (assessmentItem) {
222
- assessmentItem.showCorrectResponse(this._testContext.view === "scorer");
161
+ assessmentItem.showCorrectResponse(this.sessionContext.view === "scorer");
223
162
  }
224
163
  }
225
164
  }
226
165
  // Event handler for connected QTI assessment items
227
166
  _setCorrectResponseVisibility(assessmentItem) {
228
- assessmentItem.showCorrectResponse(this._testContext.view === "scorer");
167
+ assessmentItem.showCorrectResponse(this.sessionContext.view === "scorer");
229
168
  }
230
169
  }
231
170
  return TestViewClass;
@@ -233,13 +172,13 @@ var TestViewMixin = (superClass) => {
233
172
 
234
173
  // src/lib/qti-test/core/test-base.ts
235
174
  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 {
175
+ import { LitElement } from "lit";
176
+ import { state } from "lit/decorators.js";
177
+ var TestBase = class extends LitElement {
239
178
  constructor() {
240
179
  super();
241
- this._testContext = { items: [], testOutcomeVariables: [] };
242
- this.testElement = null;
180
+ this.testContext = { items: [], testOutcomeVariables: [] };
181
+ this.sessionContext = {};
243
182
  /**
244
183
  * Updates the variables of an assessment item in the test context.
245
184
  * - Matches the assessment item with the corresponding test context item.
@@ -251,7 +190,7 @@ var TestBase = class extends LitElement2 {
251
190
  */
252
191
  this._updateItemInTestContext = (assessmentItem) => {
253
192
  const { identifier, variables } = assessmentItem;
254
- const itemContext = this._testContext.items.find((i) => i?.identifier === identifier);
193
+ const itemContext = this.testContext.items.find((i) => i?.identifier === identifier);
255
194
  if (!itemContext) {
256
195
  console.warn(`Item IDs between assessment.xml and item.xml should match: ${identifier} is not found!`);
257
196
  return;
@@ -263,17 +202,23 @@ var TestBase = class extends LitElement2 {
263
202
  }
264
203
  };
265
204
  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) => ({
205
+ if (this.testContext && this.testContext.items.length > 0) return;
206
+ this.testElement = e.detail;
207
+ const items = Array.from(this.testElement.querySelectorAll("qti-assessment-item-ref")).map((itemRef) => {
208
+ return {
269
209
  href: itemRef.href,
270
210
  identifier: itemRef.identifier,
271
211
  category: itemRef.category,
272
- variables: [{ identifier: "completionStatus", value: "not_attempted", type: "outcome" }]
273
- })
274
- );
275
- this.testElement = qtiAssessmentTest;
276
- this._testContext = { ...this._testContext, items };
212
+ variables: [
213
+ {
214
+ identifier: "completionStatus",
215
+ value: "not_attempted",
216
+ type: "outcome"
217
+ }
218
+ ]
219
+ };
220
+ });
221
+ this.testContext = { ...this.testContext, items };
277
222
  });
278
223
  this.addEventListener("qti-assessment-item-connected", (e) => {
279
224
  this._updateItemInTestContext(e.detail);
@@ -283,27 +228,34 @@ var TestBase = class extends LitElement2 {
283
228
  this._updateItemVariablesInTestContext(assessmentitem.identifier, assessmentitem.variables);
284
229
  });
285
230
  }
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
- }
231
+ // get testContext(): TestContext {
232
+ // return this._testContext;
233
+ // }
234
+ // // /* restores the context by updating existing items and adding new items from the "contextToRestore" parameter into the "this._context.items" array. */
235
+ // set testContext(testContext: TestContext) {
236
+ // if (this._testContext.items.length > 0) {
237
+ // console.warn(
238
+ // 'testContext already set and can not be overwritten. Set the testContext before loading the assessment test'
239
+ // );
240
+ // return;
241
+ // }
242
+ // if (testContext === null || testContext === undefined) return;
243
+ // this._testContext = { ...testContext }; // Clone the context to avoid modifying the original object
244
+ // // // append the items that are not yet in the context and replace the ones that are
245
+ // testContext.items?.forEach(itemContext => {
246
+ // const existingItemContext = this._testContext.items.find(i => i.identifier === itemContext.identifier);
247
+ // if (existingItemContext) {
248
+ // existingItemContext.variables = itemContext.variables;
249
+ // } else {
250
+ // this._testContext.items.push(itemContext);
251
+ // }
252
+ // });
253
+ // }
302
254
  _updateItemVariablesInTestContext(identifier, variables) {
303
- this._testContext = {
304
- ...this._testContext,
255
+ this.testContext = {
256
+ ...this.testContext,
305
257
  // Spread existing test context properties
306
- items: this._testContext.items.map((itemContext) => {
258
+ items: this.testContext.items.map((itemContext) => {
307
259
  if (itemContext.identifier !== identifier) {
308
260
  return itemContext;
309
261
  }
@@ -318,30 +270,15 @@ var TestBase = class extends LitElement2 {
318
270
  })
319
271
  };
320
272
  }
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
273
  };
337
274
  __decorateClass([
338
- state2(),
275
+ state(),
339
276
  provide({ context: testContext })
340
- ], TestBase.prototype, "_testContext", 2);
277
+ ], TestBase.prototype, "testContext", 2);
341
278
  __decorateClass([
342
- state2(),
343
- provide({ context: testElement })
344
- ], TestBase.prototype, "testElement", 2);
279
+ state(),
280
+ provide({ context: sessionContext })
281
+ ], TestBase.prototype, "sessionContext", 2);
345
282
 
346
283
  // src/lib/qti-test/core/mixins/test-processing.mixin.ts
347
284
  var TestProcessingMixin = (superClass) => {
@@ -349,9 +286,9 @@ var TestProcessingMixin = (superClass) => {
349
286
  constructor(...args) {
350
287
  super(...args);
351
288
  this.addEventListener("qti-register-variable", (e) => {
352
- this._testContext = {
353
- ...this._testContext,
354
- testOutcomeVariables: [...this._testContext.testOutcomeVariables, e.detail.variable]
289
+ this.testContext = {
290
+ ...this.testContext,
291
+ testOutcomeVariables: [...this.testContext.testOutcomeVariables || [], e.detail.variable]
355
292
  };
356
293
  e.stopPropagation();
357
294
  });
@@ -377,9 +314,9 @@ var TestProcessingMixin = (superClass) => {
377
314
  console.warn(`Can not set qti-outcome-identifier: ${identifier}, it is not available`);
378
315
  return;
379
316
  }
380
- this._testContext = {
381
- ...this._testContext,
382
- testOutcomeVariables: this._testContext.testOutcomeVariables.map((v) => {
317
+ this.testContext = {
318
+ ...this.testContext,
319
+ testOutcomeVariables: this.testContext.testOutcomeVariables?.map((v) => {
383
320
  if (v.identifier !== identifier) {
384
321
  return v;
385
322
  }
@@ -394,7 +331,7 @@ var TestProcessingMixin = (superClass) => {
394
331
  return this.getVariable(identifier);
395
332
  }
396
333
  getVariable(identifier) {
397
- return this._testContext.testOutcomeVariables.find((v) => v.identifier === identifier) || null;
334
+ return this.testContext.testOutcomeVariables?.find((v) => v.identifier === identifier) || null;
398
335
  }
399
336
  /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */
400
337
  }
@@ -402,22 +339,28 @@ var TestProcessingMixin = (superClass) => {
402
339
  };
403
340
 
404
341
  // src/lib/qti-test/core/qti-test.ts
405
- var QtiTest = class extends TestLoaderMixin(TestProcessingMixin(TestNavigationMixin(TestViewMixin(TestBase)))) {
342
+ var QtiTest = class extends TestLoaderMixin(TestNavigationMixin(TestViewMixin(TestProcessingMixin(TestBase)))) {
343
+ // export class QtiTest extends TestLoaderMixin(TestNavigationMixin(TestViewMixin(TestBase))) {
406
344
  /**
407
345
  * Renders the component's template.
408
346
  * Provides a default `<slot>` for content projection.
409
347
  */
348
+ async connectedCallback() {
349
+ super.connectedCallback();
350
+ await this.updateComplete;
351
+ this.dispatchEvent(new CustomEvent("qti-test-connected", { detail: this }));
352
+ }
410
353
  render() {
411
- return html2`<slot></slot>`;
354
+ return html`<slot></slot>`;
412
355
  }
413
356
  };
414
357
  QtiTest = __decorateClass([
415
- customElement2("qti-test")
358
+ customElement("qti-test")
416
359
  ], QtiTest);
417
360
 
418
361
  // src/lib/qti-test/core/qti-assessment-test/qti-assessment-item-ref.ts
419
362
  import { consume } from "@lit/context";
420
- import { html as html3, LitElement as LitElement3 } from "lit";
363
+ import { html as html2, LitElement as LitElement2 } from "lit";
421
364
  import { property as property2 } from "lit/decorators.js";
422
365
  var stringToBooleanConverter = {
423
366
  fromAttribute(value) {
@@ -427,7 +370,7 @@ var stringToBooleanConverter = {
427
370
  return value ? "true" : "false";
428
371
  }
429
372
  };
430
- var QtiAssessmentItemRef = class extends LitElement3 {
373
+ var QtiAssessmentItemRef = class extends LitElement2 {
431
374
  constructor() {
432
375
  super(...arguments);
433
376
  this.weigths = /* @__PURE__ */ new Map();
@@ -451,7 +394,7 @@ var QtiAssessmentItemRef = class extends LitElement3 {
451
394
  );
452
395
  }
453
396
  render() {
454
- return html3`${this.xmlDoc}`;
397
+ return html2`${this.xmlDoc}`;
455
398
  }
456
399
  };
457
400
  __decorateClass([
@@ -481,7 +424,7 @@ if (!customElements.get("qti-assessment-item-ref")) {
481
424
 
482
425
  // src/lib/qti-test/core/qti-assessment-test/qti-assessment-section.ts
483
426
  import { consume as consume2 } from "@lit/context";
484
- import { html as html4, LitElement as LitElement4 } from "lit";
427
+ import { html as html3, LitElement as LitElement3 } from "lit";
485
428
  import { property as property3 } from "lit/decorators.js";
486
429
  var stringToBooleanConverter2 = {
487
430
  fromAttribute(value) {
@@ -491,7 +434,7 @@ var stringToBooleanConverter2 = {
491
434
  return value ? "true" : "false";
492
435
  }
493
436
  };
494
- var QtiAssessmentSection = class extends LitElement4 {
437
+ var QtiAssessmentSection = class extends LitElement3 {
495
438
  async connectedCallback() {
496
439
  super.connectedCallback();
497
440
  await this.updateComplete;
@@ -503,7 +446,7 @@ var QtiAssessmentSection = class extends LitElement4 {
503
446
  );
504
447
  }
505
448
  render() {
506
- return html4`<slot name="qti-rubric-block"></slot><slot></slot>`;
449
+ return html3`<slot name="qti-rubric-block"></slot><slot></slot>`;
507
450
  }
508
451
  };
509
452
  __decorateClass([
@@ -533,9 +476,9 @@ if (!customElements.get("qti-assessment-section")) {
533
476
 
534
477
  // src/lib/qti-test/core/qti-assessment-test/qti-assessment-test.ts
535
478
  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 {
479
+ import { html as html4, LitElement as LitElement4 } from "lit";
480
+ import { customElement as customElement2, property as property4 } from "lit/decorators.js";
481
+ var QtiAssessmentTest = class extends LitElement4 {
539
482
  async connectedCallback() {
540
483
  super.connectedCallback();
541
484
  await this.updateComplete;
@@ -548,7 +491,7 @@ var QtiAssessmentTest = class extends LitElement5 {
548
491
  );
549
492
  }
550
493
  render() {
551
- return html5` <slot></slot>`;
494
+ return html4` <slot></slot>`;
552
495
  }
553
496
  };
554
497
  __decorateClass([
@@ -561,13 +504,13 @@ __decorateClass([
561
504
  consume3({ context: testContext, subscribe: true })
562
505
  ], QtiAssessmentTest.prototype, "_testContext", 2);
563
506
  QtiAssessmentTest = __decorateClass([
564
- customElement3("qti-assessment-test")
507
+ customElement2("qti-assessment-test")
565
508
  ], QtiAssessmentTest);
566
509
 
567
510
  // 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 {
511
+ import { html as html5, LitElement as LitElement5 } from "lit";
512
+ import { customElement as customElement3, property as property5 } from "lit/decorators.js";
513
+ var QtiTestPart = class extends LitElement5 {
571
514
  constructor() {
572
515
  super(...arguments);
573
516
  this.identifier = "";
@@ -587,7 +530,7 @@ var QtiTestPart = class extends LitElement6 {
587
530
  );
588
531
  }
589
532
  render() {
590
- return html6` <slot></slot>`;
533
+ return html5` <slot></slot>`;
591
534
  }
592
535
  };
593
536
  __decorateClass([
@@ -606,18 +549,17 @@ __decorateClass([
606
549
  property5({ type: String, attribute: "submission-mode" })
607
550
  ], QtiTestPart.prototype, "submissionMode", 2);
608
551
  QtiTestPart = __decorateClass([
609
- customElement4("qti-test-part")
552
+ customElement3("qti-test-part")
610
553
  ], QtiTestPart);
611
554
  if (!customElements.get("qti-test-part")) {
612
555
  customElements.define("qti-test-part", QtiTestPart);
613
556
  }
614
557
 
615
558
  export {
616
- TestContainer,
617
559
  QtiTest,
618
560
  QtiAssessmentItemRef,
619
561
  QtiAssessmentSection,
620
562
  QtiAssessmentTest,
621
563
  QtiTestPart
622
564
  };
623
- //# sourceMappingURL=chunk-YOXF6JPS.js.map
565
+ //# sourceMappingURL=chunk-GRYVMG5Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/qti-test/core/qti-test.ts","../../src/lib/qti-test/core/mixins/test-loader.mixin.ts","../../src/lib/qti-test/core/mixins/test-navigation.mixin.ts","../../src/lib/qti-test/core/mixins/test-view.mixin.ts","../../src/lib/qti-test/core/test-base.ts","../../src/lib/qti-test/core/mixins/test-processing.mixin.ts","../../src/lib/qti-test/core/qti-assessment-test/qti-assessment-item-ref.ts","../../src/lib/qti-test/core/qti-assessment-test/qti-assessment-section.ts","../../src/lib/qti-test/core/qti-assessment-test/qti-assessment-test.ts","../../src/lib/qti-test/core/qti-assessment-test/qti-test-part.ts"],"sourcesContent":["import { html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { TestLoaderMixin, TestNavigationMixin, TestViewMixin } from './mixins';\nimport { TestBase } from './test-base';\nimport { TestProcessingMixin } from './mixins/test-processing.mixin';\n\n/**\n * `<qti-test>` is a custom element designed for rendering and interacting with QTI (Question and Test Interoperability) tests.\n *\n * This component leverages several mixins to provide functionality for loading, navigating, processing, and displaying QTI test assessments.\n *\n * ### Example Usage\n *\n * Minimal example including navigation:\n *\n * ```html\n * <qti-test>\n * <test-navigation>\n * <test-container test-url=\"./path/to/assessment.xml\"></test-container>\n * <nav class=\"flex\">\n * <test-prev></test-prev>\n * <test-next></test-next>\n * </nav>\n * </test-navigation>\n * </qti-test>\n * ```\n *\n * Use the following file structure\n * A qti-test loads a QTI3.0 assessmenttest.xml file from a package folder.\n *\n * ```plaintext\n * Root/\n * ├── index.html\n * └── /assets/api/examples/\n * ├── assessmenttest.xml\n * └── imsmanifest.xml\n *\n * ```\n *\n * ### Test components\n *\n * Use test components inside the qti-test component for added functionality.\n * ### Test next\n * `<test-next> | TestNext`\n *\n * ### Test prev\n *\n * `<test-prev> | TestPrev`\n * ### Test components\n *\n * You can use normal class names to style the elements.\n * And you can use the `test-prev` and `test-next` elements to navigate through the test.\n *\n */\n@customElement('qti-test')\nexport class QtiTest extends TestLoaderMixin(TestNavigationMixin(TestViewMixin(TestProcessingMixin(TestBase)))) {\n // export class QtiTest extends TestLoaderMixin(TestNavigationMixin(TestViewMixin(TestBase))) {\n /**\n * Renders the component's template.\n * Provides a default `<slot>` for content projection.\n */\n async connectedCallback(): Promise<void> {\n super.connectedCallback();\n await this.updateComplete;\n this.dispatchEvent(new CustomEvent('qti-test-connected', { detail: this }));\n }\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-test': QtiTest;\n }\n}\n","import { property } from 'lit/decorators.js';\n\nimport { qtiTransformItem } from '../../../qti-transformers';\n\nimport type { TestContext } from '..';\nimport type { TestBase } from '../test-base';\n\nconst setSessionData = <T>(key: string, value?: T): void => sessionStorage.setItem(key, JSON.stringify(value));\nconst getSessionData = <T>(key: string): T | null =>\n sessionStorage.getItem(key) ? JSON.parse(sessionStorage.getItem(key)!) : null;\n\ntype Constructor<T = {}> = abstract new (...args: any[]) => T;\n\ndeclare class TestLoaderInterface {}\nexport const TestLoaderMixin = <T extends Constructor<TestBase>>(superClass: T) => {\n abstract class TestLoaderClass extends superClass {\n /** Items will be scored on everyinteraction when `qti-assessment-item` is not set to adaptive, and the `SCORE` outcome identifier is not set to be \"human\" | \"externalMachine\" */\n\n /** TestContext will be stored in sessionStorage with given attribute value if provided */\n @property({ type: String, attribute: 'auto-store-restore' }) autoStoreRestoreContext: string | null = null;\n\n @property({ type: String, attribute: 'nav-item-id' }) navItemId: string | null = null;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.addEventListener('qti-load-item-request' /* 5. Request the item */, ({ detail }: CustomEvent) => {\n detail.promise = (async () => {\n const api = await qtiTransformItem().load(`${detail.href}`, detail.cancelPreviousRequest);\n return api.htmlDoc();\n })();\n });\n }\n\n async connectedCallback(): Promise<void> {\n super.connectedCallback();\n if (this.navItemId) {\n this.sessionContext = { ...this.sessionContext, navItemId: this.navItemId };\n }\n if (this.autoStoreRestoreContext) {\n const testContext = getSessionData<TestContext>(this.autoStoreRestoreContext);\n if (testContext) {\n this.testContext = testContext;\n }\n }\n }\n\n updated(changedProperties: Map<string | number | symbol, unknown>) {\n if (changedProperties.has('testContext')) {\n if (this.autoStoreRestoreContext) {\n setSessionData<Readonly<TestContext>>(this.autoStoreRestoreContext, this.testContext);\n }\n }\n }\n }\n\n return TestLoaderClass as Constructor<TestLoaderInterface> & T;\n};\n","import type { QtiAssessmentItemRef } from '../qti-assessment-test';\nimport type { TestBase } from '../test-base';\n\ntype Constructor<T = {}> = abstract new (...args: any[]) => T;\n\ndeclare class TestNavigationInterface {}\nexport const TestNavigationMixin = <T extends Constructor<TestBase>>(superClass: T) => {\n abstract class TestNavigationClass extends superClass {\n constructor(...args: any[]) {\n super(...args);\n // load an item\n this.addEventListener('qti-request-test-item', ({ detail: navItemId }: CustomEvent<string>) => {\n if (!navItemId) return;\n this._clearLoadedItems();\n\n const itemRefEl = this.testElement.querySelector<QtiAssessmentItemRef>(\n `qti-assessment-item-ref[identifier=\"${navItemId}\"]`\n );\n\n const promise = this._loadItemRequest(itemRefEl.href, false);\n\n const navPartId = itemRefEl.closest('qti-test-part').identifier;\n const navSectionId = itemRefEl.closest('qti-assessment-section').identifier;\n this.sessionContext = { ...this.sessionContext, navPartId, navSectionId, navItemId, navItemLoading: true };\n\n if (promise) {\n promise\n .then(doc => {\n itemRefEl.xmlDoc = doc;\n requestAnimationFrame(() =>\n this.dispatchEvent(new CustomEvent('qti-item-connected', { bubbles: true, composed: true }))\n );\n this.sessionContext = { ...this.sessionContext, navItemLoading: false };\n })\n .catch(error => console.error('Failed to load item:', error));\n } else {\n console.info('Load item request was not handled:', itemRefEl.href);\n }\n });\n\n this.addEventListener('qti-assessment-test-connected', (e: CustomEvent) => {\n this.testElement = e.detail;\n\n let navItemId = this.sessionContext.navItemId;\n if (!navItemId) {\n const itemRefEl = this.testElement.querySelector<QtiAssessmentItemRef>('qti-assessment-item-ref');\n navItemId = itemRefEl.identifier;\n }\n this.dispatchEvent(\n new CustomEvent('qti-request-test-item', { detail: navItemId, bubbles: true, composed: true })\n );\n });\n }\n\n private _clearLoadedItems(): void {\n const itemRefEls = this.testElement.querySelectorAll(`qti-assessment-test qti-assessment-item-ref`);\n Array.from(itemRefEls).forEach((itemElement: QtiAssessmentItemRef) => {\n itemElement.xmlDoc = null;\n });\n }\n\n private _loadItemRequest(href: string, cancelPreviousRequest: boolean = true): Promise<DocumentFragment> {\n const event = new CustomEvent('qti-load-item-request', {\n bubbles: true,\n composed: true,\n detail: {\n href: href,\n promise: null,\n cancelPreviousRequest\n }\n });\n this.dispatchEvent(event);\n\n return event.detail.promise;\n }\n }\n\n return TestNavigationClass as Constructor<TestNavigationInterface> & T;\n};\n","import type { QtiAssessmentItem } from '../../../qti-components';\nimport type { TestBase } from '../test-base';\n\nexport type View = 'author' | 'candidate' | 'proctor' | 'scorer' | 'testConstructor' | 'tutor' | '';\n\ntype Constructor<T = {}> = abstract new (...args: any[]) => T;\n\ndeclare class TestViewInterface {}\n\nexport const TestViewMixin = <T extends Constructor<TestBase>>(superClass: T) => {\n abstract class TestViewClass extends superClass {\n constructor(...args: any[]) {\n super(...args);\n this.sessionContext = { ...this.sessionContext, view: 'candidate' };\n\n this.addEventListener('on-test-switch-view', (e: CustomEvent<View>) => {\n this.sessionContext = { ...this.sessionContext, view: e.detail };\n this._updateElementView();\n });\n this.addEventListener('qti-assessment-test-connected', () => {\n this._updateElementView();\n });\n this.addEventListener('qti-assessment-item-connected', (e: CustomEvent) => {\n this._updateElementView();\n this._setCorrectResponseVisibility(e.detail);\n });\n }\n\n willUpdate(changedProperties: Map<string | number | symbol, unknown>) {\n super.willUpdate(changedProperties);\n if (changedProperties.has('sessionContext')) {\n // if (previousContext && previousContext.view !== this.sessionContext.view) {\n this._updateElementView();\n // }\n }\n }\n\n // Method to handle view updates for elements based on the current context view\n private _updateElementView() {\n if (this.testElement && this.testElement) {\n const viewElements = Array.from(this.testElement.querySelectorAll('[view]'));\n\n viewElements.forEach((element: HTMLElement) => {\n element.classList.toggle('show', element.getAttribute('view') === this.sessionContext.view);\n });\n\n const assessmentItem = this.testElement.querySelector<QtiAssessmentItem>(\n `qti-assessment-item[identifier=\"${this.sessionContext.navItemId}\"]`\n );\n if (assessmentItem) {\n assessmentItem.showCorrectResponse(this.sessionContext.view === 'scorer');\n }\n }\n }\n\n // Event handler for connected QTI assessment items\n private _setCorrectResponseVisibility(assessmentItem: QtiAssessmentItem): void {\n assessmentItem.showCorrectResponse(this.sessionContext.view === 'scorer');\n }\n }\n\n return TestViewClass as Constructor<TestViewInterface> & T;\n};\n","import { provide } from '@lit/context';\nimport { LitElement } from 'lit';\nimport { state } from 'lit/decorators.js';\n\nimport { testContext } from '../../exports/test.context';\nimport { type SessionContext, sessionContext } from '../../exports/session.context';\n\nimport type { TestContext } from '../../exports/test.context';\nimport type { QtiAssessmentTest } from './qti-assessment-test';\nimport type { QtiAssessmentItem } from '../../qti-components/';\nimport type { OutcomeVariable, VariableValue } from '../../exports/variables';\n\nexport abstract class TestBase extends LitElement {\n @state()\n @provide({ context: testContext })\n public testContext: Readonly<TestContext> = { items: [], testOutcomeVariables: [] };\n\n @state()\n @provide({ context: sessionContext })\n public sessionContext: Readonly<SessionContext> = {};\n\n testElement: QtiAssessmentTest;\n\n constructor() {\n super();\n\n /**\n * When the test is connected, the items are updated in the test context.\n * An existing context item is updated with the itemRef properties if nessesary.\n */\n this.addEventListener('qti-assessment-test-connected', (e: CustomEvent<QtiAssessmentTest>) => {\n if (this.testContext && this.testContext.items.length > 0) return;\n\n this.testElement = e.detail;\n const items = Array.from(this.testElement.querySelectorAll('qti-assessment-item-ref')).map(itemRef => {\n return {\n href: itemRef.href,\n identifier: itemRef.identifier,\n category: itemRef.category,\n variables: [\n {\n identifier: 'completionStatus',\n value: 'not_attempted',\n type: 'outcome'\n } as OutcomeVariable\n ]\n };\n });\n this.testContext = { ...this.testContext, items };\n });\n\n this.addEventListener('qti-assessment-item-connected', (e: CustomEvent<QtiAssessmentItem>) => {\n this._updateItemInTestContext(e.detail);\n });\n this.addEventListener('qti-outcome-changed', e => {\n const assessmentitem = e.composedPath()[0] as QtiAssessmentItem;\n this._updateItemVariablesInTestContext(assessmentitem.identifier, assessmentitem.variables);\n });\n }\n\n // get testContext(): TestContext {\n // return this._testContext;\n // }\n\n // // /* restores the context by updating existing items and adding new items from the \"contextToRestore\" parameter into the \"this._context.items\" array. */\n // set testContext(testContext: TestContext) {\n // if (this._testContext.items.length > 0) {\n // console.warn(\n // 'testContext already set and can not be overwritten. Set the testContext before loading the assessment test'\n // );\n // return;\n // }\n // if (testContext === null || testContext === undefined) return;\n // this._testContext = { ...testContext }; // Clone the context to avoid modifying the original object\n // // // append the items that are not yet in the context and replace the ones that are\n // testContext.items?.forEach(itemContext => {\n // const existingItemContext = this._testContext.items.find(i => i.identifier === itemContext.identifier);\n // if (existingItemContext) {\n // existingItemContext.variables = itemContext.variables;\n // } else {\n // this._testContext.items.push(itemContext);\n // }\n // });\n // }\n\n private _updateItemVariablesInTestContext(\n identifier: string,\n variables: VariableValue<string | string[] | null>[]\n ): void {\n // Update the test context with modified variables for the specified item\n this.testContext = {\n ...this.testContext, // Spread existing test context properties\n items: this.testContext.items.map(itemContext => {\n // If the item identifier doesn't match, keep it unchanged\n if (itemContext.identifier !== identifier) {\n return itemContext;\n }\n\n // Update the matching item with new variables\n return {\n ...itemContext, // Keep other properties of the item context\n variables: variables.map(variable => {\n // Find a matching variable in the current item context\n const matchingVariable = itemContext.variables.find(v => v.identifier === variable.identifier);\n\n // Merge matching variable with the new one, or use the new variable if no match\n return matchingVariable ? { ...matchingVariable, ...variable } : variable;\n })\n };\n })\n };\n }\n\n /**\n * Updates the variables of an assessment item in the test context.\n * - Matches the assessment item with the corresponding test context item.\n * - If the item is not found, logs a warning.\n * - Updates variables in the test context if exactly one variable exists.\n * - Otherwise, syncs the assessment item's variables with the test context.\n *\n * @param assessmentItem - The assessment item to update.\n */\n private _updateItemInTestContext = (assessmentItem: QtiAssessmentItem): void => {\n const { identifier, variables } = assessmentItem;\n\n // console.log(this._testContext);\n\n // Find the corresponding item in the test context by identifier\n const itemContext = this.testContext.items.find(i => i?.identifier === identifier);\n\n if (!itemContext) {\n console.warn(`Item IDs between assessment.xml and item.xml should match: ${identifier} is not found!`);\n return;\n }\n\n // Update variables in the test context or sync them to the assessment item\n if (itemContext.variables?.length === 1) {\n // The loaded qti-assessment-item itself has variables which are not in test context yet.\n this._updateItemVariablesInTestContext(identifier, variables);\n } else {\n // Sync the assessment item's variables with the test context\n assessmentItem.variables = [...(itemContext.variables || [])];\n }\n };\n}\n","import type { OutcomeVariable, VariableDeclaration } from '../../../exports/variables';\nimport type { QtiOutcomeProcessing } from '../../../qti-components';\nimport type { TestBase } from '../test-base';\n\ntype Constructor<T = {}> = abstract new (...args: any[]) => T;\n\ndeclare class TestProcessingInterface {\n updateOutcomeVariable(identifier: string, value: string | string[] | undefined): void;\n getOutcome(identifier: string): Readonly<OutcomeVariable>;\n getVariable(identifier: string): Readonly<VariableDeclaration<string | string[] | null>>;\n outcomeProcessing(): boolean;\n}\nexport const TestProcessingMixin = <T extends Constructor<TestBase>>(superClass: T) => {\n abstract class TestProcessingElement extends superClass {\n constructor(...args: any[]) {\n super(...args);\n this.addEventListener('qti-register-variable', (e: CustomEvent<{ variable: any }>) => {\n this.testContext = {\n ...this.testContext,\n testOutcomeVariables: [...(this.testContext.testOutcomeVariables || []), e.detail.variable]\n };\n e.stopPropagation();\n });\n // wordt aangeroepen vanuit de processingtemplate\n this.addEventListener(\n 'qti-set-outcome-value',\n (e: CustomEvent<{ outcomeIdentifier: string; value: string | string[] }>) => {\n const { outcomeIdentifier, value } = e.detail;\n this.updateOutcomeVariable(outcomeIdentifier, value);\n e.stopPropagation();\n }\n );\n }\n\n outcomeProcessing(): boolean {\n const outcomeProcessor = this.querySelector('qti-outcome-processing') as unknown as QtiOutcomeProcessing;\n if (!outcomeProcessor) return false;\n outcomeProcessor?.process();\n return true;\n }\n\n /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */\n\n public updateOutcomeVariable(identifier: string, value: string | string[] | undefined) {\n const outcomeVariable = this.getOutcome(identifier);\n if (!outcomeVariable) {\n console.warn(`Can not set qti-outcome-identifier: ${identifier}, it is not available`);\n return;\n }\n this.testContext = {\n ...this.testContext,\n testOutcomeVariables: this.testContext.testOutcomeVariables?.map(v => {\n if (v.identifier !== identifier) {\n return v;\n }\n return {\n ...v,\n value: outcomeVariable.cardinality === 'single' ? value : [...v.value, value as string]\n };\n })\n };\n }\n\n public getOutcome(identifier: string): Readonly<OutcomeVariable> {\n return this.getVariable(identifier) as OutcomeVariable;\n }\n public getVariable(identifier: string): Readonly<VariableDeclaration<string | string[] | null>> {\n return this.testContext.testOutcomeVariables?.find(v => v.identifier === identifier) || null;\n }\n /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */\n }\n\n return TestProcessingElement as Constructor<TestProcessingInterface> & T;\n};\n","import { consume } from '@lit/context';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { testContext } from '../../../exports/test.context';\n\nimport type { TestContext } from '../../../exports/test.context';\nimport type { QtiAssessmentItem } from '../../../qti-components';\n\n// Converter function to interpret \"true\" and \"false\" as booleans\nconst stringToBooleanConverter = {\n fromAttribute(value: string): boolean {\n return value === 'true';\n },\n toAttribute(value: boolean): string {\n return value ? 'true' : 'false';\n }\n};\n\n// @customElement('qti-assessment-item-ref')\nexport class QtiAssessmentItemRef extends LitElement {\n @property({ type: String }) category?: string;\n @property({ type: String }) identifier?: string;\n @property({ type: Boolean, converter: stringToBooleanConverter }) required?: boolean;\n @property({ type: Boolean, converter: stringToBooleanConverter }) fixed?: boolean;\n @property({ type: String }) href?: string;\n\n @consume({ context: testContext, subscribe: true })\n public _testContext?: TestContext;\n\n weigths: Map<string, number> = new Map();\n\n @property({ type: Object, attribute: false })\n xmlDoc!: DocumentFragment; // the XMLDocument\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n return this;\n }\n\n get assessmentItem(): QtiAssessmentItem | null {\n return this.renderRoot?.querySelector('qti-assessment-item');\n }\n\n async connectedCallback(): Promise<void> {\n // debugger;\n super.connectedCallback();\n await this.updateComplete;\n this.dispatchEvent(\n new CustomEvent('qti-assessment-item-ref-connected', {\n bubbles: true,\n composed: true,\n detail: { identifier: this.identifier, href: this.href, category: this.category }\n })\n );\n }\n\n render() {\n return html`${this.xmlDoc}`;\n }\n}\n\nif (!customElements.get('qti-assessment-item-ref')) {\n customElements.define('qti-assessment-item-ref', QtiAssessmentItemRef);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-assessment-item-ref': QtiAssessmentItemRef;\n }\n}\n","import { consume } from '@lit/context';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { testContext } from '../../../exports/test.context';\n\nimport type { TestContext } from '../../../exports/test.context';\n\n// https://www.imsglobal.org/sites/default/files/spec/qti/v3/info/index.html#Root_AssessmentSection\n\nconst stringToBooleanConverter = {\n fromAttribute(value: string): boolean {\n return value === 'true';\n },\n toAttribute(value: boolean): string {\n return value ? 'true' : 'false';\n }\n};\n\nexport class QtiAssessmentSection extends LitElement {\n @property({ type: String }) identifier: string;\n @property({ type: String }) required: string;\n @property({ type: Boolean, converter: stringToBooleanConverter }) fixed: boolean;\n @property({ type: String }) title: string;\n @property({ type: Boolean, converter: stringToBooleanConverter }) visible: boolean;\n @property({ type: Boolean, converter: stringToBooleanConverter, attribute: 'keep-together' }) keepTogether: boolean;\n\n @consume({ context: testContext, subscribe: true })\n public _testContext?: TestContext;\n\n async connectedCallback(): Promise<void> {\n super.connectedCallback();\n await this.updateComplete;\n this.dispatchEvent(\n new Event('qti-assessment-section-connected', {\n bubbles: true,\n composed: true\n })\n );\n }\n\n render() {\n return html`<slot name=\"qti-rubric-block\"></slot><slot></slot>`;\n }\n}\n\nif (!customElements.get('qti-assessment-section')) {\n customElements.define('qti-assessment-section', QtiAssessmentSection);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-assessment-section': QtiAssessmentSection;\n }\n}\n","import { consume } from '@lit/context';\nimport { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { testContext } from '../../../exports/test.context';\n\nimport type { TestContext } from '../../../exports/test.context';\n\n@customElement('qti-assessment-test')\nexport class QtiAssessmentTest extends LitElement {\n @property({ type: String }) identifier: string;\n @property({ type: String }) title: string;\n\n @consume({ context: testContext, subscribe: true })\n public _testContext?: TestContext;\n\n async connectedCallback(): Promise<void> {\n super.connectedCallback();\n await this.updateComplete;\n this.dispatchEvent(\n new CustomEvent('qti-assessment-test-connected', {\n detail: this,\n bubbles: true,\n composed: true\n })\n );\n }\n\n render() {\n return html` <slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-assessment-test': QtiAssessmentTest;\n }\n}\n","import { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n@customElement('qti-test-part')\nexport class QtiTestPart extends LitElement {\n @property({ type: String }) identifier: string = '';\n @property({ type: String }) title: string = '';\n @property({ type: String }) class: string = '';\n\n @property({ type: String, attribute: 'navigation-mode' })\n NavigationMode: 'linear' | 'nonlinear' = 'nonlinear';\n\n @property({ type: String, attribute: 'submission-mode' })\n submissionMode: 'individual' | 'simultaneous' = 'individual';\n\n async connectedCallback(): Promise<void> {\n super.connectedCallback();\n await this.updateComplete;\n this.dispatchEvent(\n new Event('qti-test-part-connected', {\n bubbles: true,\n composed: true\n })\n );\n }\n\n render() {\n return html` <slot></slot>`;\n }\n}\n\nif (!customElements.get('qti-test-part')) {\n customElements.define('qti-test-part', QtiTestPart);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-test-part': QtiTestPart;\n }\n}\n"],"mappings":"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","names":["testContext","html","LitElement","property","LitElement","html","property","consume","html","LitElement","property","stringToBooleanConverter","LitElement","html","property","consume","consume","html","LitElement","customElement","property","LitElement","html","property","consume","customElement","html","LitElement","customElement","property","LitElement","html","property","customElement"]}