@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,10 +0,0 @@
1
- // src/lib/qti-test/core/context/test.context.ts
2
- import { createContext } from "@lit/context";
3
- var testContext = createContext(Symbol("test"));
4
- var testElement = createContext(Symbol("testElement"));
5
-
6
- export {
7
- testContext,
8
- testElement
9
- };
10
- //# sourceMappingURL=chunk-UFYWCLXF.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-test/core/context/test.context.ts"],"sourcesContent":["import { createContext } from '@lit/context';\nimport type { QtiAssessmentTest } from '../qti-assessment-test';\nimport type { View } from '../mixins/test-view.mixin';\nimport type { VariableDeclaration } from '../../../exports/variables';\nimport type { ItemContext } from '../../../exports/item.context';\n\nexport interface TestContext {\n items: (ItemContext & { category?: string })[];\n testOutcomeVariables: VariableDeclaration<string | string[] | null>[];\n navPartId?: string | null;\n navSectionId?: string | null;\n navItemId?: string | null;\n navItemLoading?: boolean;\n navTestLoading?: boolean;\n view?: View;\n}\n\nexport const testContext = createContext<Readonly<TestContext>>(Symbol('test'));\n\nexport type TestElement = {\n el: QtiAssessmentTest;\n};\n\nexport const testElement = createContext<Readonly<TestElement>>(Symbol('testElement'));\n"],"mappings":";AAAA,SAAS,qBAAqB;AAiBvB,IAAM,cAAc,cAAqC,OAAO,MAAM,CAAC;AAMvE,IAAM,cAAc,cAAqC,OAAO,aAAa,CAAC;","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-UN2IFSGC.js.map
@@ -1,46 +0,0 @@
1
- import {
2
- btn,
3
- dis
4
- } from "./chunk-4O5F7WV7.js";
5
- import {
6
- TestComponent
7
- } from "./chunk-MLT7V47R.js";
8
- import {
9
- __decorateClass
10
- } from "./chunk-H2JE6IVU.js";
11
-
12
- // src/lib/qti-test/components/test-end-attempt.ts
13
- import { css, html } from "lit";
14
- import { customElement } from "lit/decorators.js";
15
- var TestEndAttempt = class extends TestComponent {
16
- _processResponse() {
17
- const qtiItemEl = this._testElement.querySelector(
18
- `qti-assessment-item-ref[identifier="${this._testContext.navItemId}"]`
19
- );
20
- const qtiAssessmentItemEl = qtiItemEl.assessmentItem;
21
- qtiAssessmentItemEl.processResponse();
22
- }
23
- constructor() {
24
- super();
25
- this.addEventListener("click", () => this._processResponse());
26
- }
27
- render() {
28
- return html` <slot></slot> `;
29
- }
30
- };
31
- TestEndAttempt.styles = css`
32
- :host {
33
- ${btn};
34
- }
35
- :host([disabled]) {
36
- ${dis};
37
- }
38
- `;
39
- TestEndAttempt = __decorateClass([
40
- customElement("test-end-attempt")
41
- ], TestEndAttempt);
42
-
43
- export {
44
- TestEndAttempt
45
- };
46
- //# sourceMappingURL=chunk-VAPB5TN4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-test/components/test-end-attempt.ts"],"sourcesContent":["import { css, html } from 'lit';\n\nimport { customElement } from 'lit/decorators.js';\nimport type { QtiAssessmentItemRef } from '../core';\nimport * as styles from './styles';\nimport { TestComponent } from './test-component.abstract';\n\n@customElement('test-end-attempt')\nexport class TestEndAttempt extends TestComponent {\n static styles = css`\n :host {\n ${styles.btn};\n }\n :host([disabled]) {\n ${styles.dis};\n }\n `;\n\n _processResponse() {\n const qtiItemEl = this._testElement.querySelector<QtiAssessmentItemRef>(\n `qti-assessment-item-ref[identifier=\"${this._testContext.navItemId}\"]`\n );\n const qtiAssessmentItemEl = qtiItemEl.assessmentItem;\n qtiAssessmentItemEl.processResponse();\n }\n\n constructor() {\n super();\n this.addEventListener('click', () => this._processResponse());\n }\n\n render() {\n return html` <slot></slot> `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'test-end-attempt': TestEndAttempt;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,KAAK,YAAY;AAE1B,SAAS,qBAAqB;AAMvB,IAAM,iBAAN,cAA6B,cAAc;AAAA,EAUhD,mBAAmB;AACjB,UAAM,YAAY,KAAK,aAAa;AAAA,MAClC,uCAAuC,KAAK,aAAa,SAAS;AAAA,IACpE;AACA,UAAM,sBAAsB,UAAU;AACtC,wBAAoB,gBAAgB;AAAA,EACtC;AAAA,EAEA,cAAc;AACZ,UAAM;AACN,SAAK,iBAAiB,SAAS,MAAM,KAAK,iBAAiB,CAAC;AAAA,EAC9D;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,EACT;AACF;AA1Ba,eACJ,SAAS;AAAA;AAAA,QAEH,GAAG;AAAA;AAAA;AAAA,QAGH,GAAG;AAAA;AAAA;AANL,iBAAN;AAAA,EADN,cAAc,kBAAkB;AAAA,GACpB;","names":[]}
@@ -1,50 +0,0 @@
1
- import {
2
- btn,
3
- dis
4
- } from "./chunk-4O5F7WV7.js";
5
- import {
6
- TestComponent
7
- } from "./chunk-3QQFMVDS.js";
8
- import {
9
- __decorateClass
10
- } from "./chunk-H2JE6IVU.js";
11
-
12
- // src/lib/qti-test/components/test-next.ts
13
- import { css, html } from "lit";
14
- import { customElement } from "lit/decorators.js";
15
- var TestNext = class extends TestComponent {
16
- constructor() {
17
- super();
18
- this._internals.role = "button";
19
- this._internals.ariaLabel = "Next item";
20
- this.addEventListener("click", (e) => {
21
- e.preventDefault();
22
- if (!this.disabled) this._requestItem(this.items[this.itemIndex + 1].identifier);
23
- });
24
- }
25
- willUpdate(changedProperties) {
26
- super.willUpdate(changedProperties);
27
- if (changedProperties.has("_testContext")) {
28
- this.disabled = !this._testElement?.el || this.itemIndex < 0 || this.itemIndex >= this.items.length - 1;
29
- }
30
- }
31
- render() {
32
- return html`<slot></slot>`;
33
- }
34
- };
35
- TestNext.styles = css`
36
- :host {
37
- ${btn};
38
- }
39
- :host([disabled]) {
40
- ${dis};
41
- }
42
- `;
43
- TestNext = __decorateClass([
44
- customElement("test-next")
45
- ], TestNext);
46
-
47
- export {
48
- TestNext
49
- };
50
- //# sourceMappingURL=chunk-VBF3GCZK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-test/components/test-next.ts"],"sourcesContent":["import { css, html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\nimport * as styles from './styles';\nimport { TestComponent } from './test-component.abstract';\n\n/**\n * Represents a custom element for navigating to the next test item.\n *\n * @remarks\n * This element provides functionality for navigating to the next test item.\n *\n * @example\n * ```html\n * <test-next></test-next>\n * ```\n */\n@customElement('test-next')\nexport class TestNext extends TestComponent {\n static styles = css`\n :host {\n ${styles.btn};\n }\n :host([disabled]) {\n ${styles.dis};\n }\n `;\n\n constructor() {\n super();\n this._internals.role = 'button';\n this._internals.ariaLabel = 'Next item';\n\n this.addEventListener('click', e => {\n e.preventDefault();\n if (!this.disabled) this._requestItem(this.items[this.itemIndex + 1].identifier);\n });\n }\n\n willUpdate(changedProperties: Map<string | number | symbol, unknown>) {\n super.willUpdate(changedProperties);\n if (changedProperties.has('_testContext')) {\n this.disabled = !this._testElement?.el || this.itemIndex < 0 || this.itemIndex >= this.items.length - 1;\n }\n }\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'test-next': TestNext;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,KAAK,YAAY;AAC1B,SAAS,qBAAqB;AAgBvB,IAAM,WAAN,cAAuB,cAAc;AAAA,EAU1C,cAAc;AACZ,UAAM;AACN,SAAK,WAAW,OAAO;AACvB,SAAK,WAAW,YAAY;AAE5B,SAAK,iBAAiB,SAAS,OAAK;AAClC,QAAE,eAAe;AACjB,UAAI,CAAC,KAAK,SAAU,MAAK,aAAa,KAAK,MAAM,KAAK,YAAY,CAAC,EAAE,UAAU;AAAA,IACjF,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,mBAA2D;AACpE,UAAM,WAAW,iBAAiB;AAClC,QAAI,kBAAkB,IAAI,cAAc,GAAG;AACzC,WAAK,WAAW,CAAC,KAAK,cAAc,MAAM,KAAK,YAAY,KAAK,KAAK,aAAa,KAAK,MAAM,SAAS;AAAA,IACxG;AAAA,EACF;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,EACT;AACF;AA/Ba,SACJ,SAAS;AAAA;AAAA,QAEH,GAAG;AAAA;AAAA;AAAA,QAGH,GAAG;AAAA;AAAA;AANL,WAAN;AAAA,EADN,cAAc,WAAW;AAAA,GACb;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-test/components/test-end-attempt.ts"],"sourcesContent":["import { css, html } from 'lit';\n\nimport { customElement } from 'lit/decorators.js';\nimport type { QtiAssessmentItemRef } from '../core';\nimport * as styles from './styles';\nimport { TestComponent } from './test-component.abstract';\n\n@customElement('test-end-attempt')\nexport class TestEndAttempt extends TestComponent {\n static styles = css`\n :host {\n ${styles.btn};\n }\n :host([disabled]) {\n ${styles.dis};\n }\n `;\n\n _processResponse() {\n const qtiItemEl = this._testElement.querySelector<QtiAssessmentItemRef>(\n `qti-assessment-item-ref[identifier=\"${this._testContext.navItemId}\"]`\n );\n const qtiAssessmentItemEl = qtiItemEl.assessmentItem;\n qtiAssessmentItemEl.processResponse();\n }\n\n constructor() {\n super();\n this.addEventListener('click', () => this._processResponse());\n }\n\n render() {\n return html` <slot></slot> `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'test-end-attempt': TestEndAttempt;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,SAAS,KAAK,YAAY;AAE1B,SAAS,qBAAqB;AAMvB,IAAM,iBAAN,cAA6B,cAAc;AAAA,EAUhD,mBAAmB;AACjB,UAAM,YAAY,KAAK,aAAa;AAAA,MAClC,uCAAuC,KAAK,aAAa,SAAS;AAAA,IACpE;AACA,UAAM,sBAAsB,UAAU;AACtC,wBAAoB,gBAAgB;AAAA,EACtC;AAAA,EAEA,cAAc;AACZ,UAAM;AACN,SAAK,iBAAiB,SAAS,MAAM,KAAK,iBAAiB,CAAC;AAAA,EAC9D;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,EACT;AACF;AA1Ba,eACJ,SAAS;AAAA;AAAA,QAEH,GAAG;AAAA;AAAA;AAAA,QAGH,GAAG;AAAA;AAAA;AANL,iBAAN;AAAA,EADN,cAAc,kBAAkB;AAAA,GACpB;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-test/components/test-view.ts"],"sourcesContent":["import { html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { TestComponent } from './test-component.abstract';\nimport { watch } from '../../decorators/watch';\n\n@customElement('test-view')\nexport class TestView extends TestComponent {\n static DEFAULT_VIEW_OPTIONS = ['author', 'candidate', 'proctor', 'scorer', 'testConstructor', 'tutor'];\n\n /** label accompanying the select view dropdown */\n @property({ type: String })\n label = 'view';\n\n /** The options to display in the dropdown, default: ['author', 'candidate', 'proctor', 'scorer', 'testConstructor', 'tutor'] */\n @property({ type: String, attribute: 'view-options' }) viewOptions;\n @watch('viewOptions', { waitUntilFirstUpdate: true })\n protected _handleViewOptionsChange = () => {\n this.updateViewOptions();\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n this.updateViewOptions();\n }\n\n @state()\n private _viewOptions: string[] = TestView.DEFAULT_VIEW_OPTIONS;\n\n private updateViewOptions() {\n if (this.viewOptions) {\n const options = this.viewOptions.split(',').map(opt => opt.trim());\n this._viewOptions = options.filter(opt => TestView.DEFAULT_VIEW_OPTIONS.includes(opt));\n } else {\n this._viewOptions = TestView.DEFAULT_VIEW_OPTIONS;\n }\n }\n\n protected _switchView(view: string) {\n this.dispatchEvent(\n new CustomEvent('on-test-switch-view', {\n composed: true,\n bubbles: true,\n detail: view\n })\n );\n }\n\n render() {\n return html`\n <label part=\"label\" for=\"viewSelect\">${this.label}</label>\n <select\n part=\"select\"\n id=\"viewSelect\"\n .disabled=${this.disabled}\n @change=${(e: Event) => {\n const el = e.target as HTMLSelectElement;\n this._switchView(el.value);\n }}\n >\n ${this._viewOptions.map(v => html`<option value=\"${v}\" ?selected=${v === this.view}>${v}</option>`)}\n </select>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'test-view': TestView;\n }\n}\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,eAAe,UAAU,aAAa;AAKxC,IAAM,WAAN,cAAuB,cAAc;AAAA,EAArC;AAAA;AAKL,iBAAQ;AAKR,SAAU,2BAA2B,MAAM;AACzC,WAAK,kBAAkB;AAAA,IACzB;AAQA,SAAQ,eAAyB,SAAS;AAAA;AAAA,EAN1C,oBAA0B;AACxB,UAAM,kBAAkB;AACxB,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAKQ,oBAAoB;AAC1B,QAAI,KAAK,aAAa;AACpB,YAAM,UAAU,KAAK,YAAY,MAAM,GAAG,EAAE,IAAI,SAAO,IAAI,KAAK,CAAC;AACjE,WAAK,eAAe,QAAQ,OAAO,SAAO,SAAS,qBAAqB,SAAS,GAAG,CAAC;AAAA,IACvF,OAAO;AACL,WAAK,eAAe,SAAS;AAAA,IAC/B;AAAA,EACF;AAAA,EAEU,YAAY,MAAc;AAClC,SAAK;AAAA,MACH,IAAI,YAAY,uBAAuB;AAAA,QACrC,UAAU;AAAA,QACV,SAAS;AAAA,QACT,QAAQ;AAAA,MACV,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,6CACkC,KAAK,KAAK;AAAA;AAAA;AAAA;AAAA,oBAInC,KAAK,QAAQ;AAAA,kBACf,CAAC,MAAa;AACtB,YAAM,KAAK,EAAE;AACb,WAAK,YAAY,GAAG,KAAK;AAAA,IAC3B,CAAC;AAAA;AAAA,UAEC,KAAK,aAAa,IAAI,OAAK,sBAAsB,CAAC,eAAe,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC;AAAA;AAAA;AAAA,EAGzG;AACF;AAzDa,SACJ,uBAAuB,CAAC,UAAU,aAAa,WAAW,UAAU,mBAAmB,OAAO;AAIrG;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAJf,SAKX;AAGuD;AAAA,EAAtD,SAAS,EAAE,MAAM,QAAQ,WAAW,eAAe,CAAC;AAAA,GAR1C,SAQ4C;AAE7C;AAAA,EADT,MAAM,eAAe,EAAE,sBAAsB,KAAK,CAAC;AAAA,GATzC,SAUD;AAUF;AAAA,EADP,MAAM;AAAA,GAnBI,SAoBH;AApBG,WAAN;AAAA,EADN,cAAc,WAAW;AAAA,GACb;","names":[]}
@@ -1,78 +0,0 @@
1
- import {
2
- TestComponent
3
- } from "./chunk-MLT7V47R.js";
4
- import {
5
- __decorateClass
6
- } from "./chunk-H2JE6IVU.js";
7
-
8
- // src/lib/qti-test/components/test-paging-buttons-stamp.ts
9
- import { html } from "lit";
10
- import { customElement, property } from "lit/decorators.js";
11
- import { prepareTemplate } from "stampino";
12
- var TestPagingButtonsStamp = class extends TestComponent {
13
- constructor() {
14
- super();
15
- this.maxDisplayedItems = 2;
16
- this.skipOnCategory = "dep-informational";
17
- this._internals.ariaLabel = "pagination";
18
- }
19
- createRenderRoot() {
20
- return this;
21
- }
22
- render() {
23
- const items = this._testContext.items.reduce(
24
- (acc, item) => {
25
- const isDepInfoItem = item.category?.split(" ").includes(this.skipOnCategory);
26
- const newIndex = isDepInfoItem ? "i" : acc.counter++;
27
- acc.result.push({
28
- ...item,
29
- newIndex
30
- // Assign the new index, which only increments for non-info items
31
- });
32
- return acc;
33
- },
34
- { counter: 0, result: [] }
35
- ).result;
36
- const itemIndex = items.findIndex((item) => item.identifier === this._testContext.navItemId);
37
- const start = Math.max(0, itemIndex - this.maxDisplayedItems);
38
- const end = Math.min(items.length, itemIndex + this.maxDisplayedItems + 1);
39
- const clampedItems = items.slice(start, end);
40
- return html`
41
- ${clampedItems.map((item) => {
42
- const rawscore = item.variables.find((vr) => vr.identifier == "SCORE");
43
- const score = parseInt(rawscore?.value?.toString());
44
- const completionStatus = item.variables.find((v) => v.identifier === "completionStatus")?.value;
45
- const type = item.category !== this.skipOnCategory ? "regular" : "info";
46
- const active = this._testContext.navItemId === item.identifier;
47
- const correct = this._testContext.view === "scorer" && type == "regular" && score !== void 0 && !isNaN(score) && score > 0;
48
- const incorrect = this._testContext.view === "scorer" && type == "regular" && score !== void 0 && !isNaN(score) && score <= 0;
49
- const answered = this._testContext.view === "candidate" && completionStatus === "completed" && item.category !== this.skipOnCategory;
50
- const computedItem = {
51
- ...item,
52
- type,
53
- active,
54
- correct,
55
- incorrect,
56
- answered
57
- };
58
- const templateElement = this.firstElementChild;
59
- const myTemplate = prepareTemplate(templateElement);
60
- return myTemplate({ item: computedItem });
61
- })}
62
- `;
63
- }
64
- };
65
- __decorateClass([
66
- property({ type: Number, attribute: "max-displayed-items" })
67
- ], TestPagingButtonsStamp.prototype, "maxDisplayedItems", 2);
68
- __decorateClass([
69
- property({ type: String, attribute: "skip-on-category" })
70
- ], TestPagingButtonsStamp.prototype, "skipOnCategory", 2);
71
- TestPagingButtonsStamp = __decorateClass([
72
- customElement("test-paging-buttons-stamp")
73
- ], TestPagingButtonsStamp);
74
-
75
- export {
76
- TestPagingButtonsStamp
77
- };
78
- //# sourceMappingURL=chunk-X226BX2U.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-test/components/test-paging-buttons-stamp.ts"],"sourcesContent":["import { html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { TestComponent } from './test-component.abstract';\nimport { prepareTemplate } from 'stampino';\n\n@customElement('test-paging-buttons-stamp')\nexport class TestPagingButtonsStamp extends TestComponent {\n @property({ type: Number, attribute: 'max-displayed-items' })\n private maxDisplayedItems = 2;\n\n @property({ type: String, attribute: 'skip-on-category' })\n private skipOnCategory = 'dep-informational';\n\n protected createRenderRoot() {\n return this;\n }\n\n constructor() {\n super();\n this._internals.ariaLabel = 'pagination';\n }\n\n render() {\n const items = this._testContext.items.reduce(\n (acc, item) => {\n const isDepInfoItem = item.category?.split(' ').includes(this.skipOnCategory);\n const newIndex = isDepInfoItem ? 'i' : acc.counter++;\n acc.result.push({\n ...item,\n newIndex // Assign the new index, which only increments for non-info items\n });\n return acc;\n },\n { counter: 0, result: [] }\n ).result;\n\n // Get the index of the current item\n const itemIndex = items.findIndex(item => item.identifier === this._testContext.navItemId);\n\n // Calculate the start and end range based on maxDisplayedItems\n const start = Math.max(0, itemIndex - this.maxDisplayedItems);\n const end = Math.min(items.length, itemIndex + this.maxDisplayedItems + 1);\n\n // console.log('start', start, 'end', end);\n // Adjust the items array to only include the clamped range\n const clampedItems = items.slice(start, end);\n\n return html`\n ${clampedItems.map(item => {\n const rawscore = item.variables.find(vr => vr.identifier == 'SCORE');\n const score = parseInt(rawscore?.value?.toString());\n const completionStatus = item.variables.find(v => v.identifier === 'completionStatus')?.value;\n const type = item.category !== this.skipOnCategory ? 'regular' : 'info'; // rounded-full\n const active = this._testContext.navItemId === item.identifier; // !border-sky-600\n const correct =\n this._testContext.view === 'scorer' && type == 'regular' && score !== undefined && !isNaN(score) && score > 0; // bg-green-100 border-green-400\n const incorrect =\n this._testContext.view === 'scorer' &&\n type == 'regular' &&\n score !== undefined &&\n !isNaN(score) &&\n score <= 0; // bg-red-100 border-red-400\n const answered =\n this._testContext.view === 'candidate' &&\n completionStatus === 'completed' &&\n item.category !== this.skipOnCategory; // bg-slate-300 shadow-sm\n\n const computedItem = {\n ...item,\n type,\n active,\n correct,\n incorrect,\n answered\n };\n\n const templateElement = this.firstElementChild as HTMLTemplateElement;\n const myTemplate = prepareTemplate(templateElement);\n return myTemplate({ item: computedItem });\n })}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'test-paging-buttons-stamp': TestPagingButtonsStamp;\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,eAAe,gBAAgB;AAGxC,SAAS,uBAAuB;AAGzB,IAAM,yBAAN,cAAqC,cAAc;AAAA,EAWxD,cAAc;AACZ,UAAM;AAVR,SAAQ,oBAAoB;AAG5B,SAAQ,iBAAiB;AAQvB,SAAK,WAAW,YAAY;AAAA,EAC9B;AAAA,EAPU,mBAAmB;AAC3B,WAAO;AAAA,EACT;AAAA,EAOA,SAAS;AACP,UAAM,QAAQ,KAAK,aAAa,MAAM;AAAA,MACpC,CAAC,KAAK,SAAS;AACb,cAAM,gBAAgB,KAAK,UAAU,MAAM,GAAG,EAAE,SAAS,KAAK,cAAc;AAC5E,cAAM,WAAW,gBAAgB,MAAM,IAAI;AAC3C,YAAI,OAAO,KAAK;AAAA,UACd,GAAG;AAAA,UACH;AAAA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT;AAAA,MACA,EAAE,SAAS,GAAG,QAAQ,CAAC,EAAE;AAAA,IAC3B,EAAE;AAGF,UAAM,YAAY,MAAM,UAAU,UAAQ,KAAK,eAAe,KAAK,aAAa,SAAS;AAGzF,UAAM,QAAQ,KAAK,IAAI,GAAG,YAAY,KAAK,iBAAiB;AAC5D,UAAM,MAAM,KAAK,IAAI,MAAM,QAAQ,YAAY,KAAK,oBAAoB,CAAC;AAIzE,UAAM,eAAe,MAAM,MAAM,OAAO,GAAG;AAE3C,WAAO;AAAA,QACH,aAAa,IAAI,UAAQ;AACzB,YAAM,WAAW,KAAK,UAAU,KAAK,QAAM,GAAG,cAAc,OAAO;AACnE,YAAM,QAAQ,SAAS,UAAU,OAAO,SAAS,CAAC;AAClD,YAAM,mBAAmB,KAAK,UAAU,KAAK,OAAK,EAAE,eAAe,kBAAkB,GAAG;AACxF,YAAM,OAAO,KAAK,aAAa,KAAK,iBAAiB,YAAY;AACjE,YAAM,SAAS,KAAK,aAAa,cAAc,KAAK;AACpD,YAAM,UACJ,KAAK,aAAa,SAAS,YAAY,QAAQ,aAAa,UAAU,UAAa,CAAC,MAAM,KAAK,KAAK,QAAQ;AAC9G,YAAM,YACJ,KAAK,aAAa,SAAS,YAC3B,QAAQ,aACR,UAAU,UACV,CAAC,MAAM,KAAK,KACZ,SAAS;AACX,YAAM,WACJ,KAAK,aAAa,SAAS,eAC3B,qBAAqB,eACrB,KAAK,aAAa,KAAK;AAEzB,YAAM,eAAe;AAAA,QACnB,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,YAAM,kBAAkB,KAAK;AAC7B,YAAM,aAAa,gBAAgB,eAAe;AAClD,aAAO,WAAW,EAAE,MAAM,aAAa,CAAC;AAAA,IAC1C,CAAC,CAAC;AAAA;AAAA,EAEN;AACF;AA1EU;AAAA,EADP,SAAS,EAAE,MAAM,QAAQ,WAAW,sBAAsB,CAAC;AAAA,GADjD,uBAEH;AAGA;AAAA,EADP,SAAS,EAAE,MAAM,QAAQ,WAAW,mBAAmB,CAAC;AAAA,GAJ9C,uBAKH;AALG,yBAAN;AAAA,EADN,cAAc,2BAA2B;AAAA,GAC7B;","names":[]}
@@ -1,107 +0,0 @@
1
- import {
2
- item_default
3
- } from "./chunk-NZQKGIJP.js";
4
- import {
5
- qtiTransformItem
6
- } from "./chunk-XDMSEAYC.js";
7
- import {
8
- watch
9
- } from "./chunk-ELDMXTUQ.js";
10
- import {
11
- __decorateClass
12
- } from "./chunk-H2JE6IVU.js";
13
-
14
- // src/lib/qti-item/core/components/item-container.ts
15
- import { LitElement, html } from "lit";
16
- import { customElement, property, state } from "lit/decorators.js";
17
- import { until } from "lit/directives/until.js";
18
- var ItemContainer = class extends LitElement {
19
- constructor() {
20
- super(...arguments);
21
- this.itemURL = null;
22
- this.itemDoc = null;
23
- this.itemXML = null;
24
- /** Template content if provided */
25
- this.templateContent = null;
26
- }
27
- async handleItemURLChange() {
28
- if (!this.itemURL) return;
29
- try {
30
- const api = await qtiTransformItem().load(this.itemURL);
31
- this.itemDoc = api.htmlDoc();
32
- } catch (error) {
33
- console.error("Error loading or parsing XML:", error);
34
- }
35
- }
36
- handleItemXMLChange() {
37
- if (!this.itemXML) return;
38
- try {
39
- this.itemDoc = qtiTransformItem().parse(this.itemXML).htmlDoc();
40
- } catch (error) {
41
- console.error("Error parsing XML:", error);
42
- }
43
- }
44
- async connectedCallback() {
45
- super.connectedCallback();
46
- this.initializeTemplateContent();
47
- this.applyStyles();
48
- if (this.itemURL) {
49
- this.handleItemURLChange();
50
- }
51
- if (this.itemXML) {
52
- this.handleItemXMLChange();
53
- }
54
- }
55
- initializeTemplateContent() {
56
- const template = this.querySelector("template");
57
- this.templateContent = template ? template.content : html``;
58
- }
59
- applyStyles() {
60
- const sheet = new CSSStyleSheet();
61
- sheet.replaceSync(item_default);
62
- this.shadowRoot.adoptedStyleSheets = [sheet];
63
- }
64
- render() {
65
- return html`
66
- ${this.templateContent}
67
- <slot></slot>
68
- ${until(this.itemDoc, html`<span>Loading...</span>`)}
69
- `;
70
- }
71
- };
72
- __decorateClass([
73
- property({ type: String, attribute: "item-url" })
74
- ], ItemContainer.prototype, "itemURL", 2);
75
- __decorateClass([
76
- state()
77
- ], ItemContainer.prototype, "itemDoc", 2);
78
- __decorateClass([
79
- state()
80
- ], ItemContainer.prototype, "itemXML", 2);
81
- __decorateClass([
82
- watch("itemURL", { waitUntilFirstUpdate: true })
83
- ], ItemContainer.prototype, "handleItemURLChange", 1);
84
- __decorateClass([
85
- watch("itemXML", { waitUntilFirstUpdate: true })
86
- ], ItemContainer.prototype, "handleItemXMLChange", 1);
87
- ItemContainer = __decorateClass([
88
- customElement("item-container")
89
- ], ItemContainer);
90
-
91
- // src/lib/qti-item/core/qti-item.ts
92
- import { html as html2, LitElement as LitElement2 } from "lit";
93
- import { customElement as customElement2 } from "lit/decorators.js";
94
- var QtiItem = class extends LitElement2 {
95
- render() {
96
- return html2`<slot></slot>`;
97
- }
98
- };
99
- QtiItem = __decorateClass([
100
- customElement2("qti-item")
101
- ], QtiItem);
102
-
103
- export {
104
- ItemContainer,
105
- QtiItem
106
- };
107
- //# sourceMappingURL=chunk-XCHS3RTZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-item/core/components/item-container.ts","../../src/lib/qti-item/core/qti-item.ts"],"sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { until } from 'lit/directives/until.js';\nimport { watch } from '../../../decorators/watch';\nimport itemCss from '../../../../item.css?inline';\nimport { qtiTransformItem } from '../../../qti-transformers';\n\n/**\n * `<item-container>` is a custom element designed for hosting the qti-assessment-item.\n * The `qti-assessment-item` will be placed inside the shadow DOM of this element.\n * The element loads the item from the provided URL and renders it inside the shadow DOM.\n *\n * ### Styling\n * Add a class to the element for styling.\n *\n * ```html\n * <qti-item>\n * <item-container class=\"m-4 bg-white\" item-url=\"./path/to/item.xml\"></item-container>\n * </qti-item>\n * ```\n */\n@customElement('item-container')\nexport class ItemContainer extends LitElement {\n /** URL of the item to load */\n @property({ type: String, attribute: 'item-url' })\n itemURL: string = null;\n\n /** A parsed HTML document */\n @state()\n itemDoc: DocumentFragment = null;\n\n /** The raw XML string */\n @state()\n itemXML: string = null;\n\n /** Template content if provided */\n private templateContent = null;\n\n @watch('itemURL', { waitUntilFirstUpdate: true })\n protected async handleItemURLChange() {\n if (!this.itemURL) return;\n try {\n const api = await qtiTransformItem().load(this.itemURL);\n this.itemDoc = api.htmlDoc();\n } catch (error) {\n console.error('Error loading or parsing XML:', error);\n }\n }\n\n @watch('itemXML', { waitUntilFirstUpdate: true })\n protected handleItemXMLChange() {\n if (!this.itemXML) return;\n try {\n this.itemDoc = qtiTransformItem().parse(this.itemXML).htmlDoc();\n } catch (error) {\n console.error('Error parsing XML:', error);\n }\n }\n\n async connectedCallback(): Promise<void> {\n super.connectedCallback();\n this.initializeTemplateContent();\n this.applyStyles();\n if (this.itemURL) {\n this.handleItemURLChange();\n }\n if (this.itemXML) {\n this.handleItemXMLChange();\n }\n }\n\n private initializeTemplateContent() {\n const template = this.querySelector('template') as HTMLTemplateElement;\n this.templateContent = template ? template.content : html``;\n }\n\n private applyStyles() {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(itemCss);\n this.shadowRoot.adoptedStyleSheets = [sheet];\n }\n\n render() {\n return html`\n ${this.templateContent}\n <slot></slot>\n ${until(this.itemDoc, html`<span>Loading...</span>`)}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'item-container': ItemContainer;\n }\n}\n","import { html, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\n/**\n * `<qti-item>` is a custom element designed for rendering a single `qti-assessment-item`.\n * It can also host some functionalities to interact with the item like scoring, showing feedback, etc.\n * Placing a mandatory `<item-container>` inside '<qti-item>' will load or parse the item and render it.\n * See `<item-container>` for more details.\n *\n * ```html\n * <qti-item>\n * <item-container class=\"m-4 bg-white\" item-url=\"./path/to/item.xml\"></item-container>\n * </qti-item>\n * ```\n */\n@customElement('qti-item')\nexport class QtiItem extends LitElement {\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-item': QtiItem;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,YAAY,YAAY;AACjC,SAAS,eAAe,UAAU,aAAa;AAC/C,SAAS,aAAa;AAoBf,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAAvC;AAAA;AAGL,mBAAkB;AAIlB,mBAA4B;AAI5B,mBAAkB;AAGlB;AAAA,SAAQ,kBAAkB;AAAA;AAAA,EAG1B,MAAgB,sBAAsB;AACpC,QAAI,CAAC,KAAK,QAAS;AACnB,QAAI;AACF,YAAM,MAAM,MAAM,iBAAiB,EAAE,KAAK,KAAK,OAAO;AACtD,WAAK,UAAU,IAAI,QAAQ;AAAA,IAC7B,SAAS,OAAO;AACd,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD;AAAA,EACF;AAAA,EAGU,sBAAsB;AAC9B,QAAI,CAAC,KAAK,QAAS;AACnB,QAAI;AACF,WAAK,UAAU,iBAAiB,EAAE,MAAM,KAAK,OAAO,EAAE,QAAQ;AAAA,IAChE,SAAS,OAAO;AACd,cAAQ,MAAM,sBAAsB,KAAK;AAAA,IAC3C;AAAA,EACF;AAAA,EAEA,MAAM,oBAAmC;AACvC,UAAM,kBAAkB;AACxB,SAAK,0BAA0B;AAC/B,SAAK,YAAY;AACjB,QAAI,KAAK,SAAS;AAChB,WAAK,oBAAoB;AAAA,IAC3B;AACA,QAAI,KAAK,SAAS;AAChB,WAAK,oBAAoB;AAAA,IAC3B;AAAA,EACF;AAAA,EAEQ,4BAA4B;AAClC,UAAM,WAAW,KAAK,cAAc,UAAU;AAC9C,SAAK,kBAAkB,WAAW,SAAS,UAAU;AAAA,EACvD;AAAA,EAEQ,cAAc;AACpB,UAAM,QAAQ,IAAI,cAAc;AAChC,UAAM,YAAY,YAAO;AACzB,SAAK,WAAW,qBAAqB,CAAC,KAAK;AAAA,EAC7C;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,QACH,KAAK,eAAe;AAAA;AAAA,QAEpB,MAAM,KAAK,SAAS,6BAA6B,CAAC;AAAA;AAAA,EAExD;AACF;AAhEE;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,WAAW,CAAC;AAAA,GAFtC,cAGX;AAIA;AAAA,EADC,MAAM;AAAA,GANI,cAOX;AAIA;AAAA,EADC,MAAM;AAAA,GAVI,cAWX;AAMgB;AAAA,EADf,MAAM,WAAW,EAAE,sBAAsB,KAAK,CAAC;AAAA,GAhBrC,cAiBK;AAWN;AAAA,EADT,MAAM,WAAW,EAAE,sBAAsB,KAAK,CAAC;AAAA,GA3BrC,cA4BD;AA5BC,gBAAN;AAAA,EADN,cAAc,gBAAgB;AAAA,GAClB;;;ACtBb,SAAS,QAAAA,OAAM,cAAAC,mBAAkB;AACjC,SAAS,iBAAAC,sBAAqB;AAevB,IAAM,UAAN,cAAsBC,YAAW;AAAA,EACtC,SAAS;AACP,WAAOC;AAAA,EACT;AACF;AAJa,UAAN;AAAA,EADNC,eAAc,UAAU;AAAA,GACZ;","names":["html","LitElement","customElement","LitElement","html","customElement"]}
@@ -1,78 +0,0 @@
1
- import {
2
- TestComponent
3
- } from "./chunk-3QQFMVDS.js";
4
- import {
5
- __decorateClass
6
- } from "./chunk-H2JE6IVU.js";
7
-
8
- // src/lib/qti-test/components/test-paging-buttons-stamp.ts
9
- import { html } from "lit";
10
- import { customElement, property } from "lit/decorators.js";
11
- import { prepareTemplate } from "stampino";
12
- var TestPagingButtonsStamp = class extends TestComponent {
13
- constructor() {
14
- super();
15
- this.maxDisplayedItems = 2;
16
- this.skipOnCategory = "dep-informational";
17
- this._internals.ariaLabel = "pagination";
18
- }
19
- createRenderRoot() {
20
- return this;
21
- }
22
- render() {
23
- const items = this._testContext.items.reduce(
24
- (acc, item) => {
25
- const isDepInfoItem = item.category?.split(" ").includes(this.skipOnCategory);
26
- const newIndex = isDepInfoItem ? "i" : acc.counter++;
27
- acc.result.push({
28
- ...item,
29
- newIndex
30
- // Assign the new index, which only increments for non-info items
31
- });
32
- return acc;
33
- },
34
- { counter: 0, result: [] }
35
- ).result;
36
- const itemIndex = items.findIndex((item) => item.identifier === this._testContext.navItemId);
37
- const start = Math.max(0, itemIndex - this.maxDisplayedItems);
38
- const end = Math.min(items.length, itemIndex + this.maxDisplayedItems + 1);
39
- const clampedItems = items.slice(start, end);
40
- return html`
41
- ${clampedItems.map((item) => {
42
- const rawscore = item.variables.find((vr) => vr.identifier == "SCORE");
43
- const score = parseInt(rawscore?.value?.toString());
44
- const completionStatus = item.variables.find((v) => v.identifier === "completionStatus")?.value;
45
- const type = item.category !== this.skipOnCategory ? "regular" : "info";
46
- const active = this._testContext.navItemId === item.identifier;
47
- const correct = this._testContext.view === "scorer" && type == "regular" && score !== void 0 && !isNaN(score) && score > 0;
48
- const incorrect = this._testContext.view === "scorer" && type == "regular" && score !== void 0 && !isNaN(score) && score <= 0;
49
- const answered = this._testContext.view === "candidate" && completionStatus === "completed" && item.category !== this.skipOnCategory;
50
- const computedItem = {
51
- ...item,
52
- type,
53
- active,
54
- correct,
55
- incorrect,
56
- answered
57
- };
58
- const templateElement = this.firstElementChild;
59
- const myTemplate = prepareTemplate(templateElement);
60
- return myTemplate({ item: computedItem });
61
- })}
62
- `;
63
- }
64
- };
65
- __decorateClass([
66
- property({ type: Number, attribute: "max-displayed-items" })
67
- ], TestPagingButtonsStamp.prototype, "maxDisplayedItems", 2);
68
- __decorateClass([
69
- property({ type: String, attribute: "skip-on-category" })
70
- ], TestPagingButtonsStamp.prototype, "skipOnCategory", 2);
71
- TestPagingButtonsStamp = __decorateClass([
72
- customElement("test-paging-buttons-stamp")
73
- ], TestPagingButtonsStamp);
74
-
75
- export {
76
- TestPagingButtonsStamp
77
- };
78
- //# sourceMappingURL=chunk-YFC3BVN2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-test/components/test-paging-buttons-stamp.ts"],"sourcesContent":["import { html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { TestComponent } from './test-component.abstract';\nimport { prepareTemplate } from 'stampino';\n\n@customElement('test-paging-buttons-stamp')\nexport class TestPagingButtonsStamp extends TestComponent {\n @property({ type: Number, attribute: 'max-displayed-items' })\n private maxDisplayedItems = 2;\n\n @property({ type: String, attribute: 'skip-on-category' })\n private skipOnCategory = 'dep-informational';\n\n protected createRenderRoot() {\n return this;\n }\n\n constructor() {\n super();\n this._internals.ariaLabel = 'pagination';\n }\n\n render() {\n const items = this._testContext.items.reduce(\n (acc, item) => {\n const isDepInfoItem = item.category?.split(' ').includes(this.skipOnCategory);\n const newIndex = isDepInfoItem ? 'i' : acc.counter++;\n acc.result.push({\n ...item,\n newIndex // Assign the new index, which only increments for non-info items\n });\n return acc;\n },\n { counter: 0, result: [] }\n ).result;\n\n // Get the index of the current item\n const itemIndex = items.findIndex(item => item.identifier === this._testContext.navItemId);\n\n // Calculate the start and end range based on maxDisplayedItems\n const start = Math.max(0, itemIndex - this.maxDisplayedItems);\n const end = Math.min(items.length, itemIndex + this.maxDisplayedItems + 1);\n\n // console.log('start', start, 'end', end);\n // Adjust the items array to only include the clamped range\n const clampedItems = items.slice(start, end);\n\n return html`\n ${clampedItems.map(item => {\n const rawscore = item.variables.find(vr => vr.identifier == 'SCORE');\n const score = parseInt(rawscore?.value?.toString());\n const completionStatus = item.variables.find(v => v.identifier === 'completionStatus')?.value;\n const type = item.category !== this.skipOnCategory ? 'regular' : 'info'; // rounded-full\n const active = this._testContext.navItemId === item.identifier; // !border-sky-600\n const correct =\n this._testContext.view === 'scorer' && type == 'regular' && score !== undefined && !isNaN(score) && score > 0; // bg-green-100 border-green-400\n const incorrect =\n this._testContext.view === 'scorer' &&\n type == 'regular' &&\n score !== undefined &&\n !isNaN(score) &&\n score <= 0; // bg-red-100 border-red-400\n const answered =\n this._testContext.view === 'candidate' &&\n completionStatus === 'completed' &&\n item.category !== this.skipOnCategory; // bg-slate-300 shadow-sm\n\n const computedItem = {\n ...item,\n type,\n active,\n correct,\n incorrect,\n answered\n };\n\n const templateElement = this.firstElementChild as HTMLTemplateElement;\n const myTemplate = prepareTemplate(templateElement);\n return myTemplate({ item: computedItem });\n })}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'test-paging-buttons-stamp': TestPagingButtonsStamp;\n }\n}\n"],"mappings":";;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,eAAe,gBAAgB;AAGxC,SAAS,uBAAuB;AAGzB,IAAM,yBAAN,cAAqC,cAAc;AAAA,EAWxD,cAAc;AACZ,UAAM;AAVR,SAAQ,oBAAoB;AAG5B,SAAQ,iBAAiB;AAQvB,SAAK,WAAW,YAAY;AAAA,EAC9B;AAAA,EAPU,mBAAmB;AAC3B,WAAO;AAAA,EACT;AAAA,EAOA,SAAS;AACP,UAAM,QAAQ,KAAK,aAAa,MAAM;AAAA,MACpC,CAAC,KAAK,SAAS;AACb,cAAM,gBAAgB,KAAK,UAAU,MAAM,GAAG,EAAE,SAAS,KAAK,cAAc;AAC5E,cAAM,WAAW,gBAAgB,MAAM,IAAI;AAC3C,YAAI,OAAO,KAAK;AAAA,UACd,GAAG;AAAA,UACH;AAAA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT;AAAA,MACA,EAAE,SAAS,GAAG,QAAQ,CAAC,EAAE;AAAA,IAC3B,EAAE;AAGF,UAAM,YAAY,MAAM,UAAU,UAAQ,KAAK,eAAe,KAAK,aAAa,SAAS;AAGzF,UAAM,QAAQ,KAAK,IAAI,GAAG,YAAY,KAAK,iBAAiB;AAC5D,UAAM,MAAM,KAAK,IAAI,MAAM,QAAQ,YAAY,KAAK,oBAAoB,CAAC;AAIzE,UAAM,eAAe,MAAM,MAAM,OAAO,GAAG;AAE3C,WAAO;AAAA,QACH,aAAa,IAAI,UAAQ;AACzB,YAAM,WAAW,KAAK,UAAU,KAAK,QAAM,GAAG,cAAc,OAAO;AACnE,YAAM,QAAQ,SAAS,UAAU,OAAO,SAAS,CAAC;AAClD,YAAM,mBAAmB,KAAK,UAAU,KAAK,OAAK,EAAE,eAAe,kBAAkB,GAAG;AACxF,YAAM,OAAO,KAAK,aAAa,KAAK,iBAAiB,YAAY;AACjE,YAAM,SAAS,KAAK,aAAa,cAAc,KAAK;AACpD,YAAM,UACJ,KAAK,aAAa,SAAS,YAAY,QAAQ,aAAa,UAAU,UAAa,CAAC,MAAM,KAAK,KAAK,QAAQ;AAC9G,YAAM,YACJ,KAAK,aAAa,SAAS,YAC3B,QAAQ,aACR,UAAU,UACV,CAAC,MAAM,KAAK,KACZ,SAAS;AACX,YAAM,WACJ,KAAK,aAAa,SAAS,eAC3B,qBAAqB,eACrB,KAAK,aAAa,KAAK;AAEzB,YAAM,eAAe;AAAA,QACnB,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,YAAM,kBAAkB,KAAK;AAC7B,YAAM,aAAa,gBAAgB,eAAe;AAClD,aAAO,WAAW,EAAE,MAAM,aAAa,CAAC;AAAA,IAC1C,CAAC,CAAC;AAAA;AAAA,EAEN;AACF;AA1EU;AAAA,EADP,SAAS,EAAE,MAAM,QAAQ,WAAW,sBAAsB,CAAC;AAAA,GADjD,uBAEH;AAGA;AAAA,EADP,SAAS,EAAE,MAAM,QAAQ,WAAW,mBAAmB,CAAC;AAAA,GAJ9C,uBAKH;AALG,yBAAN;AAAA,EADN,cAAc,2BAA2B;AAAA,GAC7B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/qti-test/core/components/test-container.ts","../../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 { LitElement, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { until } from 'lit/directives/until.js';\nimport { watch } from '../../../decorators/watch';\nimport itemCss from '../../../../item.css?inline';\nimport { qtiTransformTest } from '../../../qti-transformers';\n\n/**\n * `<test-container>` is a custom element designed for hosting the qti-assessment-item.\n * The `qti-assessment-test` will be placed inside the shadow DOM of this element.\n * The element loads the test from the provided URL and renders it inside the shadow DOM.\n *\n * ```html\n * <qti-test>\n * <test-container class=\"m-4 bg-white\" test-url=\"./path/to/assessmenttest.xml\"></test-container>\n * </qti-test>\n * ```\n */\n@customElement('test-container')\nexport class TestContainer extends LitElement {\n /** URL of the item to load */\n @property({ type: String, attribute: 'test-url' })\n testURL: string = null;\n\n /** A parsed HTML document */\n @state()\n testDoc: DocumentFragment = null;\n\n /** The raw XML string */\n @state()\n testXML: string = null;\n\n /** Template content if provided */\n private templateContent = null;\n\n @watch('testURL', { waitUntilFirstUpdate: true })\n protected async handleTestURLChange() {\n if (!this.testURL) return;\n try {\n const api = await qtiTransformTest().load(this.testURL);\n this.testDoc = api.htmlDoc();\n } catch (error) {\n console.error('Error loading or parsing XML:', error);\n }\n }\n\n @watch('testXML', { waitUntilFirstUpdate: true })\n protected handleTestXMLChange() {\n if (!this.testXML) return;\n try {\n this.testDoc = qtiTransformTest().parse(this.testXML).htmlDoc();\n } catch (error) {\n console.error('Error parsing XML:', error);\n }\n }\n\n async connectedCallback(): Promise<void> {\n super.connectedCallback();\n this.initializeTemplateContent();\n this.applyStyles();\n if (this.testURL) {\n this.handleTestURLChange();\n }\n if (this.testXML) {\n this.handleTestXMLChange();\n }\n }\n\n private initializeTemplateContent() {\n const template = this.querySelector('template') as HTMLTemplateElement;\n this.templateContent = template ? template.content : html``;\n }\n\n private applyStyles() {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(itemCss);\n this.shadowRoot.adoptedStyleSheets = [sheet];\n }\n\n render() {\n return html`\n ${this.templateContent}\n <slot></slot>\n ${until(this.testDoc, html`<span>Loading...</span>`)}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'test-container': TestContainer;\n }\n}\n","import { html } from 'lit';\nimport { customElement } from 'lit/decorators.js';\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-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 * </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(TestProcessingMixin(TestNavigationMixin(TestViewMixin(TestBase)))) {\n /**\n * Renders the component's template.\n * Provides a default `<slot>` for content projection.\n */\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-test': QtiTest;\n }\n}\n","import type { LitElement } from 'lit';\nimport { qtiTransformItem } from '../../../qti-transformers';\n\n// const setSessionData = <T>(key: string, value?: T): void => sessionStorage.setItem(key, JSON.stringify(value));\n// const getSessionData = <T>(key: string): T | null => (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<LitElement>>(superClass: T) => {\n abstract class TestLoaderClass extends superClass {\n // private testURL = '';\n\n constructor(...args: any[]) {\n super(...args);\n\n // this.addEventListener('qti-load-test-request', (e: CustomEvent /* 1. Request the test */) => {\n // const { testURL } = e.detail;\n // if (!testURL) {\n // console.warn(\n // 'No test found, there should be an attribute test-url with the path to the test on the test-container'\n // );\n // } else {\n // this.testURL = testURL;\n // }\n\n // e.detail.promise = (async () => {\n // e.preventDefault(); /* indicates that the event was catched and handled */\n // const api = await qtiTransformTest().load(`${this.testURL}`); /* 6. load the item */\n // return api.htmlDoc(); /* 3. Return html version of the assessment.xml */\n // })();\n // });\n\n this.addEventListener('qti-assessment-test-connected', () => {\n // this.context = getSessionData(`testcontext-${this.testURL}`); /* 4. Set the context */\n });\n\n this.addEventListener('qti-load-item-request' /* 5. Request the item */, ({ detail }: CustomEvent) => {\n // if (!this.testURL) return;\n detail.promise = (async () => {\n const api = await qtiTransformItem().load(\n `${detail.href}`,\n detail.cancelPreviousRequest\n ); /* 6. load the item */\n return api.htmlDoc(); /* 7. Return HTML version of the item.xml */\n })();\n });\n\n this.addEventListener('qti-interaction-changed', _e => {\n /* 8. Interaction changed */\n // const scoreOutcomeIdentifier = qtiAssessmentItem.variables.find(v => v.identifier === 'SCORE') as OutcomeVariable;\n // if (scoreOutcomeIdentifier.externalScored === null && qtiAssessmentItem.adaptive === 'false') {\n // qtiAssessmentItem.processResponse(); /* 9. Process the response */\n // }\n // setSessionData(`testcontext-${this.testURL}`, this.context); /* 10. Update the context */\n });\n\n this.addEventListener('qti-outcome-changed', () => {\n // setSessionData(`testcontext-${this.testURL}`, this.context); /* 10. Update the context */\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\ndeclare module '../context/test.context' {\n interface TestContext {\n navPartId?: string | null;\n navSectionId?: string | null;\n navItemId?: string | null;\n navItemLoading?: boolean;\n navTestLoading?: boolean;\n }\n}\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\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._testContext = { ...this._testContext, 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._testContext = { ...this._testContext, 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', () => {\n let navItemId = this._testContext.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\ndeclare module '../context/test.context' {\n interface TestContext {\n view?: View;\n }\n}\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._testContext = { ...this._testContext, view: 'candidate' };\n\n this.addEventListener('on-test-switch-view', (e: CustomEvent<View>) => {\n this._testContext = { ...this._testContext, 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('_testContext')) {\n // if (previousContext && previousContext.view !== this._testContext.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._testContext.view);\n });\n\n const assessmentItem = this.testElement.querySelector<QtiAssessmentItem>(\n `qti-assessment-item[identifier=\"${this._testContext.navItemId}\"]`\n );\n if (assessmentItem) {\n assessmentItem.showCorrectResponse(this._testContext.view === 'scorer');\n }\n }\n }\n\n // Event handler for connected QTI assessment items\n private _setCorrectResponseVisibility(assessmentItem: QtiAssessmentItem): void {\n assessmentItem.showCorrectResponse(this._testContext.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';\nimport type { TestContext, TestElement } from './context';\nimport { testContext, testElement } from './context';\nimport type { QtiAssessmentTest } from './qti-assessment-test';\nimport type { QtiAssessmentItem } from '../../qti-components/';\nimport type { VariableValue } from '../../exports/variables';\nimport type { ItemContext } from '../../exports/item.context';\n\nexport abstract class TestBase extends LitElement {\n @state()\n @provide({ context: testContext })\n protected _testContext: Readonly<TestContext> = { items: [], testOutcomeVariables: [] };\n\n @state()\n @provide({ context: testElement })\n protected testElement: TestElement = null;\n\n constructor() {\n super();\n\n this.addEventListener('qti-assessment-test-connected', (e: CustomEvent<QtiAssessmentTest>) => {\n const qtiAssessmentTest = e.detail;\n\n const items = Array.from(qtiAssessmentTest.querySelectorAll('qti-assessment-item-ref')).map(\n (itemRef): ItemContext & { category: string } => ({\n href: itemRef.href,\n identifier: itemRef.identifier,\n category: itemRef.category,\n variables: [{ identifier: 'completionStatus', value: 'not_attempted', type: 'outcome' }]\n })\n );\n this.testElement = qtiAssessmentTest;\n this._testContext = { ...this._testContext, items };\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 context(): 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 context(testContext: TestContext) {\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 // private _addItemToTestContext(\n // e: CustomEvent<{ href: string; identifier: string; category: string }> & { target: QtiAssessmentItemRef }\n // ): void {\n // const { href, identifier, category } = e.detail;\n\n // // Update test context items, adding a new item if the identifier is not already in the list\n // if (!this._testContext.items.some(item => item.identifier === identifier)) {\n // this._testContext.items.push({\n // href,\n // identifier,\n // category,\n // variables: [{ identifier: 'completionStatus', value: 'not_attempted', type: 'outcome' }]\n // // category: e.target.category\n // });\n // }\n // }\n}\n","import type { OutcomeVariable, VariableDeclaration, 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';\nimport type { TestContext } from '../context';\nimport { testContext } from '../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';\nimport type { TestContext } from '../context';\nimport { testContext } from '../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';\nimport type { TestContext } from '../context';\nimport { testContext } from '../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":["html","customElement","LitElement","state","LitElement","testContext","state","html","customElement","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"]}
@@ -1,78 +0,0 @@
1
- import {
2
- TestComponent
3
- } from "./chunk-MLT7V47R.js";
4
- import {
5
- __decorateClass
6
- } from "./chunk-H2JE6IVU.js";
7
-
8
- // src/lib/qti-test/components/test-paging-buttons-stamp.ts
9
- import { html } from "lit";
10
- import { customElement, property } from "lit/decorators.js";
11
- import { prepareTemplate } from "stampino";
12
- var TestPagingButtonsStamp = class extends TestComponent {
13
- constructor() {
14
- super();
15
- this.maxDisplayedItems = 20;
16
- this.skipOnCategory = "dep-informational";
17
- this._internals.ariaLabel = "pagination";
18
- }
19
- createRenderRoot() {
20
- return this;
21
- }
22
- render() {
23
- const items = this._testContext.items.reduce(
24
- (acc, item) => {
25
- const isDepInfoItem = item.category?.split(" ").includes(this.skipOnCategory);
26
- const newIndex = isDepInfoItem ? "i" : acc.counter++;
27
- acc.result.push({
28
- ...item,
29
- newIndex
30
- // Assign the new index, which only increments for non-info items
31
- });
32
- return acc;
33
- },
34
- { counter: 0, result: [] }
35
- ).result;
36
- const itemIndex = items.findIndex((item) => item.identifier === this._testContext.navItemId);
37
- const start = Math.max(0, itemIndex - this.maxDisplayedItems);
38
- const end = Math.min(items.length, itemIndex + this.maxDisplayedItems + 1);
39
- const clampedItems = items.slice(start, end);
40
- return html`
41
- ${clampedItems.map((item) => {
42
- const rawscore = item.variables.find((vr) => vr.identifier == "SCORE");
43
- const score = parseInt(rawscore?.value?.toString());
44
- const completionStatus = item.variables.find((v) => v.identifier === "completionStatus")?.value;
45
- const type = item.category !== this.skipOnCategory ? "regular" : "info";
46
- const active = this._testContext.navItemId === item.identifier;
47
- const correct = this._testContext.view === "scorer" && type == "regular" && score !== void 0 && !isNaN(score) && score > 0;
48
- const incorrect = this._testContext.view === "scorer" && type == "regular" && score !== void 0 && !isNaN(score) && score <= 0;
49
- const answered = this._testContext.view === "candidate" && completionStatus === "completed" && item.category !== this.skipOnCategory;
50
- const computedItem = {
51
- ...item,
52
- type,
53
- active,
54
- correct,
55
- incorrect,
56
- answered
57
- };
58
- const templateElement = this.firstElementChild;
59
- const myTemplate = prepareTemplate(templateElement);
60
- return myTemplate({ item: computedItem });
61
- })}
62
- `;
63
- }
64
- };
65
- __decorateClass([
66
- property({ type: Number, attribute: "max-displayed-items" })
67
- ], TestPagingButtonsStamp.prototype, "maxDisplayedItems", 2);
68
- __decorateClass([
69
- property({ type: String, attribute: "skip-on-category" })
70
- ], TestPagingButtonsStamp.prototype, "skipOnCategory", 2);
71
- TestPagingButtonsStamp = __decorateClass([
72
- customElement("test-paging-buttons-stamp")
73
- ], TestPagingButtonsStamp);
74
-
75
- export {
76
- TestPagingButtonsStamp
77
- };
78
- //# sourceMappingURL=chunk-YQB6YLNW.js.map