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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (512) hide show
  1. package/cdn/{chunk-2F5323DC.js → chunk-4I75QSIL.js} +1 -1
  2. package/cdn/chunk-66PERJA3.js +939 -0
  3. package/cdn/chunk-6WNSQ7U6.js +939 -0
  4. package/cdn/{chunk-2WPNLHGH.js → chunk-A536ZOJJ.js} +1 -1
  5. package/cdn/{chunk-KXRA4DBZ.js → chunk-AT2C24P4.js} +1 -1
  6. package/cdn/{chunk-NAARXANC.js → chunk-BLKKKK6C.js} +1 -1
  7. package/cdn/{chunk-YXST4IEX.js → chunk-DC2R556M.js} +2 -2
  8. package/cdn/chunk-GALSGMIP.js +5 -0
  9. package/cdn/chunk-KYOTSBCX.js +1 -0
  10. package/cdn/{chunk-3M77CJJH.js → chunk-QGKK4T2J.js} +1 -1
  11. package/cdn/{chunk-WI7KK7NI.js → chunk-ROXN2HIJ.js} +1 -1
  12. package/cdn/{chunk-D4K2EXYX.js → chunk-TJMODUN5.js} +1 -1
  13. package/cdn/{chunk-YHB534QY.js → chunk-Z6SKK5ZX.js} +1 -1
  14. package/cdn/chunks/chunk-3GO57DNP.js +0 -0
  15. package/cdn/chunks/chunk-3V6LA7B3.js +8 -0
  16. package/cdn/chunks/chunk-4ILXLVT5.js +3545 -0
  17. package/cdn/chunks/chunk-4PEUIMDK.js +8 -0
  18. package/cdn/chunks/chunk-4UJBK6JO.js +1 -0
  19. package/cdn/chunks/chunk-4WXQYE2P.js +8 -0
  20. package/cdn/chunks/chunk-5BR5CJFH.js +24 -0
  21. package/cdn/chunks/chunk-5FCXUJAG.js +23 -0
  22. package/cdn/chunks/chunk-5GCSZ3CH.js +73 -0
  23. package/cdn/{chunk-II7AGB2E.js → chunks/chunk-5P7CTN7Q.js} +1 -1
  24. package/cdn/chunks/chunk-5X76K77R.js +8 -0
  25. package/cdn/chunks/chunk-6MCYE7P5.js +1 -0
  26. package/cdn/chunks/chunk-6PW2L463.js +0 -0
  27. package/cdn/{chunk-RBATSYIS.js → chunks/chunk-6S4CDN3T.js} +1 -1
  28. package/cdn/chunks/chunk-76VGZJCP.js +934 -0
  29. package/cdn/chunks/chunk-7XYBFL7U.js +934 -0
  30. package/cdn/chunks/chunk-AJJJAZWM.js +1 -0
  31. package/cdn/chunks/chunk-ARHBUT6F.js +5 -0
  32. package/cdn/chunks/chunk-AUHO2E7V.js +934 -0
  33. package/cdn/chunks/chunk-CZ3CSGCE.js +934 -0
  34. package/cdn/chunks/chunk-D3GR6AUG.js +43 -0
  35. package/cdn/chunks/chunk-DZCKF45D.js +5 -0
  36. package/cdn/chunks/chunk-EFU4L43Q.js +8 -0
  37. package/cdn/chunks/chunk-FM5C34DM.js +934 -0
  38. package/cdn/chunks/chunk-FRS2J3OS.js +59 -0
  39. package/cdn/chunks/chunk-GMK2YRB2.js +934 -0
  40. package/cdn/chunks/chunk-H2V2RXUW.js +11 -0
  41. package/cdn/chunks/chunk-HUMOYGEM.js +43 -0
  42. package/cdn/chunks/chunk-IAP2CEE7.js +1 -0
  43. package/cdn/chunks/chunk-IMJOPCFR.js +1 -0
  44. package/cdn/chunks/chunk-IQZ7AOCQ.js +8 -0
  45. package/cdn/chunks/chunk-J3JSSCM6.js +5 -0
  46. package/cdn/chunks/chunk-KHLUVO6Y.js +8 -0
  47. package/cdn/chunks/chunk-KWPDTFYH.js +1 -0
  48. package/cdn/chunks/chunk-L4CUWIE6.js +17 -0
  49. package/cdn/chunks/chunk-LARBLB7K.js +8 -0
  50. package/cdn/chunks/chunk-LNFCEHB3.js +934 -0
  51. package/cdn/chunks/chunk-LZZB4VGC.js +48 -0
  52. package/cdn/chunks/chunk-MJMONWKB.js +3539 -0
  53. package/cdn/chunks/chunk-N5OHGRGG.js +8 -0
  54. package/cdn/chunks/chunk-NDHSIO2G.js +8 -0
  55. package/cdn/chunks/chunk-NRY3WHJD.js +5 -0
  56. package/cdn/chunks/chunk-PKT2SJQD.js +8 -0
  57. package/cdn/chunks/chunk-PPWEIKLT.js +1 -0
  58. package/cdn/chunks/chunk-PT523RSK.js +8 -0
  59. package/cdn/chunks/chunk-QD3NT5PG.js +934 -0
  60. package/cdn/chunks/chunk-QQCGUVEV.js +1 -0
  61. package/cdn/chunks/chunk-QTK4CPHP.js +8 -0
  62. package/cdn/chunks/chunk-QV6I5NVQ.js +8 -0
  63. package/cdn/chunks/chunk-R33OODNX.js +1 -0
  64. package/cdn/chunks/chunk-RIXTWE2H.js +8 -0
  65. package/cdn/chunks/chunk-ROZIP5LG.js +8 -0
  66. package/cdn/chunks/chunk-RPZVSBLM.js +8 -0
  67. package/cdn/chunks/chunk-RXKI3AO4.js +1 -0
  68. package/cdn/chunks/chunk-SXM25YH3.js +934 -0
  69. package/cdn/chunks/chunk-T2KKTMAT.js +934 -0
  70. package/cdn/chunks/chunk-TEYXRLTI.js +8 -0
  71. package/cdn/chunks/chunk-TQBDBMWL.js +5 -0
  72. package/cdn/chunks/chunk-TV3SPOLH.js +8 -0
  73. package/cdn/chunks/chunk-TVDTF6P6.js +934 -0
  74. package/cdn/chunks/chunk-U2TE6TOV.js +934 -0
  75. package/cdn/chunks/chunk-UJP4TGD3.js +1 -0
  76. package/cdn/chunks/chunk-W5Y3ZU2W.js +5 -0
  77. package/cdn/chunks/chunk-WPGJ54IP.js +1 -0
  78. package/cdn/chunks/chunk-X2KBNXRO.js +6 -0
  79. package/cdn/chunks/chunk-XUJ7TXHW.js +1 -0
  80. package/cdn/chunks/chunk-YHWMZAZD.js +43 -0
  81. package/cdn/chunks/chunk-YVZ742ID.js +934 -0
  82. package/cdn/chunks/chunk-YWH4TGMA.js +5 -0
  83. package/cdn/chunks/chunk-YXR6KSZI.js +11 -0
  84. package/cdn/exports/expression-result.js +0 -0
  85. package/cdn/exports/interaction.interface.js +0 -0
  86. package/cdn/exports/interaction.js +1 -0
  87. package/cdn/exports/item.context.js +1 -0
  88. package/cdn/exports/qti-assessment-item.context.js +1 -0
  89. package/cdn/exports/qti-condition-expression.js +1 -0
  90. package/cdn/exports/qti-expression.js +1 -0
  91. package/cdn/exports/variables.js +0 -0
  92. package/cdn/index.global.js +226 -0
  93. package/cdn/index.js +1 -0
  94. package/cdn/qti-components/index.global.js +1 -1
  95. package/cdn/qti-components/index.js +1 -939
  96. package/cdn/qti-item/components/index.global.js +149 -0
  97. package/cdn/qti-item/components/index.js +3549 -0
  98. package/cdn/qti-item/components/item-container.global.js +149 -0
  99. package/cdn/qti-item/components/item-container.js +3549 -0
  100. package/cdn/qti-item/core/index.global.js +1 -1
  101. package/cdn/qti-item/core/index.js +1 -5
  102. package/cdn/qti-item/index.global.js +149 -0
  103. package/cdn/qti-item/index.js +3549 -0
  104. package/cdn/qti-item/qti-item.global.js +114 -0
  105. package/cdn/qti-item/qti-item.js +1 -0
  106. package/cdn/qti-loader/index.js +1 -1
  107. package/cdn/qti-test/components/index.js +1 -1
  108. package/cdn/qti-test/components/styles.js +1 -1
  109. package/cdn/qti-test/components/test-component.abstract.js +1 -1
  110. package/cdn/qti-test/components/test-container.global.js +149 -0
  111. package/cdn/qti-test/components/test-container.js +3549 -0
  112. package/cdn/qti-test/components/test-end-attempt.js +1 -0
  113. package/cdn/qti-test/components/test-item-link.js +1 -1
  114. package/cdn/qti-test/components/test-next.js +1 -1
  115. package/cdn/qti-test/components/test-next.spec.css +1 -0
  116. package/cdn/qti-test/components/test-next.spec.global.js +1 -199
  117. package/cdn/qti-test/components/test-next.spec.js +229 -229
  118. package/cdn/qti-test/components/test-paging-buttons-stamp.js +1 -1
  119. package/cdn/qti-test/components/test-prev.js +1 -1
  120. package/cdn/qti-test/components/test-show-correct-response.js +1 -0
  121. package/cdn/qti-test/components/test-view.js +1 -1
  122. package/cdn/qti-test/context/index.global.js +58 -0
  123. package/cdn/qti-test/context/index.js +1 -0
  124. package/cdn/qti-test/context/test.context.global.js +58 -0
  125. package/cdn/qti-test/context/test.context.js +1 -0
  126. package/cdn/qti-test/core/index.global.js +1 -1
  127. package/cdn/qti-test/core/index.js +1 -1
  128. package/cdn/qti-test/index.global.js +242 -0
  129. package/cdn/qti-test/index.js +3598 -0
  130. package/cdn/qti-test/mixins/index.global.js +1 -0
  131. package/cdn/qti-test/mixins/index.js +23 -0
  132. package/cdn/qti-test/mixins/test-loader.mixin.global.js +1 -0
  133. package/cdn/qti-test/mixins/test-loader.mixin.js +23 -0
  134. package/cdn/qti-test/mixins/test-navigation.mixin.global.js +1 -0
  135. package/cdn/qti-test/mixins/test-navigation.mixin.js +1 -0
  136. package/cdn/qti-test/mixins/test-view.mixin.global.js +1 -0
  137. package/cdn/qti-test/mixins/test-view.mixin.js +1 -0
  138. package/cdn/qti-test/qti-assessment-test/index.global.js +170 -0
  139. package/cdn/qti-test/qti-assessment-test/index.js +1 -0
  140. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.global.js +170 -0
  141. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.js +1 -0
  142. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.global.js +170 -0
  143. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.js +1 -0
  144. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.global.js +170 -0
  145. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.js +1 -0
  146. package/cdn/qti-test/qti-assessment-test/qti-test-part.global.js +114 -0
  147. package/cdn/qti-test/qti-assessment-test/qti-test-part.js +1 -0
  148. package/cdn/qti-test/qti-test.global.js +170 -0
  149. package/cdn/qti-test/qti-test.js +23 -0
  150. package/cdn/qti-test/test-base.global.js +170 -0
  151. package/cdn/qti-test/test-base.js +1 -0
  152. package/cdn/qti-transformers/index.js +1 -1
  153. package/dist/chunk-2LWLX7WV.js +6307 -0
  154. package/dist/chunk-2LWLX7WV.js.map +1 -0
  155. package/dist/{chunk-TAQAVEQ2.js → chunk-3G364JZC.js} +2 -2
  156. package/dist/{chunk-QNR4WQAC.js → chunk-6TUE644E.js} +3 -2
  157. package/dist/{chunk-2GKDJDI5.js → chunk-6ZMD232X.js} +2 -2
  158. package/dist/{chunk-3F3DCHHM.js → chunk-AYRSHIHA.js} +4 -4
  159. package/dist/{chunk-LJU3MHXE.js → chunk-BN32D5J2.js} +4 -4
  160. package/dist/{chunk-ERLGA6TC.js → chunk-CJRXRBRQ.js} +4 -4
  161. package/dist/{chunk-KVFH5VBC.js → chunk-GPJ6WTE5.js} +2 -2
  162. package/dist/{chunk-KI3A6ZT6.js → chunk-KAUHKHPH.js} +2 -2
  163. package/dist/chunk-QYN5S4EM.js +107 -0
  164. package/dist/chunk-QYN5S4EM.js.map +1 -0
  165. package/dist/{chunk-EXJQ3ZUE.js → chunk-UJTJIU3C.js} +2 -2
  166. package/dist/{chunk-UDWEOEOS.js → chunk-XVQZ5JI5.js} +2 -2
  167. package/dist/chunk-XW3PQRKW.js +6306 -0
  168. package/dist/chunk-XW3PQRKW.js.map +1 -0
  169. package/dist/{chunk-E3656TSN.js → chunk-YQ7EXOAK.js} +1 -1
  170. package/dist/chunk-YQ7EXOAK.js.map +1 -0
  171. package/dist/chunks/chunk-2V6LQV2K.js +50 -0
  172. package/dist/chunks/chunk-2V6LQV2K.js.map +1 -0
  173. package/dist/{chunk-O3GIZH57.js → chunks/chunk-3EU75IUF.js} +7 -10
  174. package/dist/chunks/chunk-3EU75IUF.js.map +1 -0
  175. package/dist/chunks/chunk-3QQFMVDS.js +118 -0
  176. package/dist/chunks/chunk-3QQFMVDS.js.map +1 -0
  177. package/dist/{chunk-SLMQZKDH.js → chunks/chunk-4GNVYCBN.js} +66 -7
  178. package/dist/chunks/chunk-4GNVYCBN.js.map +1 -0
  179. package/dist/chunks/chunk-4MQV5IRV.js +59 -0
  180. package/dist/chunks/chunk-4MQV5IRV.js.map +1 -0
  181. package/dist/chunks/chunk-4O5F7WV7.js +30 -0
  182. package/dist/chunks/chunk-4O5F7WV7.js.map +1 -0
  183. package/dist/chunks/chunk-4WVLWWYJ.js +50 -0
  184. package/dist/chunks/chunk-4WVLWWYJ.js.map +1 -0
  185. package/dist/chunks/chunk-5KVGRLYT.js +10 -0
  186. package/dist/chunks/chunk-5KVGRLYT.js.map +1 -0
  187. package/dist/chunks/chunk-5PCD2B62.js +6091 -0
  188. package/dist/chunks/chunk-5PCD2B62.js.map +1 -0
  189. package/dist/chunks/chunk-5RTLOB3Q.js +59 -0
  190. package/dist/chunks/chunk-5RTLOB3Q.js.map +1 -0
  191. package/dist/chunks/chunk-6JXR63MH.js +50 -0
  192. package/dist/chunks/chunk-6JXR63MH.js.map +1 -0
  193. package/dist/chunks/chunk-6PAEJQSQ.js +6058 -0
  194. package/dist/chunks/chunk-6PAEJQSQ.js.map +1 -0
  195. package/dist/chunks/chunk-6QT4LIPL.js +623 -0
  196. package/dist/chunks/chunk-6QT4LIPL.js.map +1 -0
  197. package/dist/chunks/chunk-7QMCKYDR.js +43 -0
  198. package/dist/chunks/chunk-7QMCKYDR.js.map +1 -0
  199. package/dist/{chunk-4YR7ZPE3.js → chunks/chunk-A24F75DB.js} +4 -4
  200. package/dist/chunks/chunk-A24F75DB.js.map +1 -0
  201. package/dist/chunks/chunk-AUWATZ65.js +10 -0
  202. package/dist/chunks/chunk-AUWATZ65.js.map +1 -0
  203. package/dist/chunks/chunk-AXTEKPP5.js +6084 -0
  204. package/dist/chunks/chunk-AXTEKPP5.js.map +1 -0
  205. package/dist/chunks/chunk-B6MJCAOF.js +6063 -0
  206. package/dist/chunks/chunk-B6MJCAOF.js.map +1 -0
  207. package/dist/chunks/chunk-BJ2JLJIJ.js +623 -0
  208. package/dist/chunks/chunk-BJ2JLJIJ.js.map +1 -0
  209. package/dist/chunks/chunk-BPHQLJWE.js +102 -0
  210. package/dist/chunks/chunk-BPHQLJWE.js.map +1 -0
  211. package/dist/chunks/chunk-CD3E4M5Y.js +107 -0
  212. package/dist/chunks/chunk-CD3E4M5Y.js.map +1 -0
  213. package/dist/chunks/chunk-CEXAR7BF.js +52 -0
  214. package/dist/chunks/chunk-CEXAR7BF.js.map +1 -0
  215. package/dist/chunks/chunk-CWYAQA25.js +6067 -0
  216. package/dist/chunks/chunk-CWYAQA25.js.map +1 -0
  217. package/dist/chunks/chunk-D3QX5N57.js +6117 -0
  218. package/dist/chunks/chunk-D3QX5N57.js.map +1 -0
  219. package/dist/{chunk-4CSM2PCC.js → chunks/chunk-D3RGDWKP.js} +1 -1
  220. package/dist/chunks/chunk-D3RGDWKP.js.map +1 -0
  221. package/dist/chunks/chunk-DLUJN2FW.js +22 -0
  222. package/dist/chunks/chunk-DLUJN2FW.js.map +1 -0
  223. package/dist/chunks/chunk-DNHDFXTV.js +59 -0
  224. package/dist/chunks/chunk-DNHDFXTV.js.map +1 -0
  225. package/dist/chunks/chunk-E4TWZ2DL.js +6088 -0
  226. package/dist/chunks/chunk-E4TWZ2DL.js.map +1 -0
  227. package/dist/chunks/chunk-ELDMXTUQ.js +31 -0
  228. package/dist/chunks/chunk-ELDMXTUQ.js.map +1 -0
  229. package/dist/chunks/chunk-FV7HWK54.js +29 -0
  230. package/dist/chunks/chunk-FV7HWK54.js.map +1 -0
  231. package/dist/chunks/chunk-GQ5P3NWC.js +46 -0
  232. package/dist/chunks/chunk-GQ5P3NWC.js.map +1 -0
  233. package/dist/chunks/chunk-GSWZT6N2.js +50 -0
  234. package/dist/chunks/chunk-GSWZT6N2.js.map +1 -0
  235. package/dist/chunks/chunk-H2JE6IVU.js +15 -0
  236. package/dist/chunks/chunk-H2JE6IVU.js.map +1 -0
  237. package/dist/chunks/chunk-HHVRU3AJ.js +107 -0
  238. package/dist/chunks/chunk-HHVRU3AJ.js.map +1 -0
  239. package/dist/chunks/chunk-HOTNM5DT.js +1 -0
  240. package/dist/chunks/chunk-HOTNM5DT.js.map +1 -0
  241. package/dist/chunks/chunk-IWG66KQQ.js +107 -0
  242. package/dist/chunks/chunk-IWG66KQQ.js.map +1 -0
  243. package/dist/chunks/chunk-J2SHENRN.js +3529 -0
  244. package/dist/chunks/chunk-J2SHENRN.js.map +1 -0
  245. package/dist/chunks/chunk-K6ATVWMP.js +6091 -0
  246. package/dist/chunks/chunk-K6ATVWMP.js.map +1 -0
  247. package/dist/chunks/chunk-KOEILLVS.js +8 -0
  248. package/dist/chunks/chunk-KOEILLVS.js.map +1 -0
  249. package/dist/{chunk-TLPISJ3Z.js → chunks/chunk-KYAIMBP5.js} +3 -3
  250. package/dist/chunks/chunk-KYAIMBP5.js.map +1 -0
  251. package/dist/chunks/chunk-LNISKMIL.js +6063 -0
  252. package/dist/chunks/chunk-LNISKMIL.js.map +1 -0
  253. package/dist/chunks/chunk-LNKJEW5E.js +627 -0
  254. package/dist/chunks/chunk-LNKJEW5E.js.map +1 -0
  255. package/dist/chunks/chunk-LXJA3VP2.js +72 -0
  256. package/dist/chunks/chunk-LXJA3VP2.js.map +1 -0
  257. package/dist/chunks/chunk-MLT7V47R.js +100 -0
  258. package/dist/chunks/chunk-MLT7V47R.js.map +1 -0
  259. package/dist/chunks/chunk-N5FPZNMX.js +43 -0
  260. package/dist/chunks/chunk-N5FPZNMX.js.map +1 -0
  261. package/dist/chunks/chunk-NHA53UTY.js +52 -0
  262. package/dist/chunks/chunk-NHA53UTY.js.map +1 -0
  263. package/dist/chunks/chunk-NZQKGIJP.js +3535 -0
  264. package/dist/chunks/chunk-NZQKGIJP.js.map +1 -0
  265. package/dist/chunks/chunk-O6WEZVEM.js +43 -0
  266. package/dist/chunks/chunk-O6WEZVEM.js.map +1 -0
  267. package/dist/chunks/chunk-OIRWOI3E.js +72 -0
  268. package/dist/chunks/chunk-OIRWOI3E.js.map +1 -0
  269. package/dist/chunks/chunk-PWOY6REC.js +6064 -0
  270. package/dist/chunks/chunk-PWOY6REC.js.map +1 -0
  271. package/dist/chunks/chunk-QJELKGWM.js +6061 -0
  272. package/dist/chunks/chunk-QJELKGWM.js.map +1 -0
  273. package/dist/chunks/chunk-QUB54PXZ.js +50 -0
  274. package/dist/chunks/chunk-QUB54PXZ.js.map +1 -0
  275. package/dist/chunks/chunk-RX3BRYYI.js +59 -0
  276. package/dist/chunks/chunk-RX3BRYYI.js.map +1 -0
  277. package/dist/chunks/chunk-UEEMM6H2.js +6090 -0
  278. package/dist/chunks/chunk-UEEMM6H2.js.map +1 -0
  279. package/dist/chunks/chunk-UFYWCLXF.js +10 -0
  280. package/dist/chunks/chunk-UFYWCLXF.js.map +1 -0
  281. package/dist/chunks/chunk-UN2IFSGC.js +1 -0
  282. package/dist/chunks/chunk-UN2IFSGC.js.map +1 -0
  283. package/dist/chunks/chunk-VAPB5TN4.js +46 -0
  284. package/dist/chunks/chunk-VAPB5TN4.js.map +1 -0
  285. package/dist/chunks/chunk-VBF3GCZK.js +50 -0
  286. package/dist/chunks/chunk-VBF3GCZK.js.map +1 -0
  287. package/dist/chunks/chunk-W4272Q5U.js +46 -0
  288. package/dist/chunks/chunk-W4272Q5U.js.map +1 -0
  289. package/dist/chunks/chunk-WWN5AD6V.js +81 -0
  290. package/dist/chunks/chunk-WWN5AD6V.js.map +1 -0
  291. package/dist/chunks/chunk-X226BX2U.js +78 -0
  292. package/dist/chunks/chunk-X226BX2U.js.map +1 -0
  293. package/dist/chunks/chunk-XCHS3RTZ.js +107 -0
  294. package/dist/chunks/chunk-XCHS3RTZ.js.map +1 -0
  295. package/dist/chunks/chunk-XDMSEAYC.js +294 -0
  296. package/dist/chunks/chunk-XDMSEAYC.js.map +1 -0
  297. package/dist/chunks/chunk-XSI6FXGD.js +19 -0
  298. package/dist/chunks/chunk-XSI6FXGD.js.map +1 -0
  299. package/dist/chunks/chunk-YFC3BVN2.js +78 -0
  300. package/dist/chunks/chunk-YFC3BVN2.js.map +1 -0
  301. package/dist/chunks/chunk-YOXF6JPS.js +623 -0
  302. package/dist/chunks/chunk-YOXF6JPS.js.map +1 -0
  303. package/dist/chunks/chunk-YQB6YLNW.js +78 -0
  304. package/dist/chunks/chunk-YQB6YLNW.js.map +1 -0
  305. package/dist/chunks/chunk-Z5THRO6Z.js +46 -0
  306. package/dist/chunks/chunk-Z5THRO6Z.js.map +1 -0
  307. package/dist/chunks/chunk-ZHAJ3CMP.js +6091 -0
  308. package/dist/chunks/chunk-ZHAJ3CMP.js.map +1 -0
  309. package/dist/chunks/chunk-ZPNJ2HP5.js +71 -0
  310. package/dist/chunks/chunk-ZPNJ2HP5.js.map +1 -0
  311. package/dist/chunks/chunk-ZQXZ6PK7.js +649 -0
  312. package/dist/chunks/chunk-ZQXZ6PK7.js.map +1 -0
  313. package/dist/custom-element-eslint-rules.js +337 -0
  314. package/dist/custom-elements.json +27158 -0
  315. package/dist/exports/expression-result.d.ts +19 -0
  316. package/dist/exports/expression-result.js +1 -0
  317. package/dist/exports/expression-result.js.map +1 -0
  318. package/dist/exports/interaction.d.ts +23 -0
  319. package/dist/exports/interaction.interface.d.ts +13 -0
  320. package/dist/exports/interaction.interface.js +1 -0
  321. package/dist/exports/interaction.interface.js.map +1 -0
  322. package/dist/exports/interaction.js +8 -0
  323. package/dist/exports/interaction.js.map +1 -0
  324. package/dist/exports/item.context.d.ts +12 -0
  325. package/dist/exports/item.context.js +8 -0
  326. package/dist/exports/item.context.js.map +1 -0
  327. package/dist/exports/qti-assessment-item.context.d.ts +10 -0
  328. package/dist/exports/qti-assessment-item.context.js +8 -0
  329. package/dist/exports/qti-assessment-item.context.js.map +1 -0
  330. package/dist/exports/qti-condition-expression.d.ts +13 -0
  331. package/dist/exports/qti-condition-expression.js +10 -0
  332. package/dist/exports/qti-condition-expression.js.map +1 -0
  333. package/dist/exports/qti-expression.d.ts +21 -0
  334. package/dist/exports/qti-expression.js +9 -0
  335. package/dist/exports/qti-expression.js.map +1 -0
  336. package/dist/exports/variables.d.ts +3 -0
  337. package/dist/exports/variables.js +1 -0
  338. package/dist/exports/variables.js.map +1 -0
  339. package/dist/index.d.ts +25 -0
  340. package/dist/index.js +256 -0
  341. package/dist/index.js.map +1 -0
  342. package/dist/item.css +8 -2
  343. package/dist/loader/index.d.ts +20 -0
  344. package/dist/loader/index.js +310 -0
  345. package/dist/loader/index.js.map +1 -0
  346. package/dist/qti-components/index.cjs +6773 -0
  347. package/dist/qti-components/index.cjs.map +1 -0
  348. package/dist/qti-components/index.d.cts +150 -0
  349. package/dist/qti-components/index.d.ts +36 -9
  350. package/dist/qti-components/index.js +94 -6164
  351. package/dist/qti-components/index.js.map +1 -1
  352. package/dist/qti-components-jsx.d.ts +396 -675
  353. package/dist/qti-item/components/index.d.ts +3 -0
  354. package/dist/qti-item/components/index.js +3856 -0
  355. package/dist/qti-item/components/index.js.map +1 -0
  356. package/dist/qti-item/components/item-container.d.ts +40 -0
  357. package/dist/qti-item/components/item-container.js +3856 -0
  358. package/dist/qti-item/components/item-container.js.map +1 -0
  359. package/dist/qti-item/core/index.d.ts +1 -1
  360. package/dist/qti-item/core/index.js +8 -100
  361. package/dist/qti-item/core/index.js.map +1 -1
  362. package/dist/qti-item/index.cjs +89 -0
  363. package/dist/qti-item/index.cjs.map +1 -0
  364. package/dist/qti-item/index.d.cts +24 -0
  365. package/dist/qti-item/index.d.ts +4 -0
  366. package/dist/qti-item/index.js +3869 -0
  367. package/dist/qti-item/index.js.map +1 -0
  368. package/dist/qti-item/qti-item.d.ts +25 -0
  369. package/dist/qti-item/qti-item.js +26 -0
  370. package/dist/qti-item/qti-item.js.map +1 -0
  371. package/dist/qti-loader/index.cjs +332 -0
  372. package/dist/qti-loader/index.cjs.map +1 -0
  373. package/dist/qti-loader/index.d.cts +20 -0
  374. package/dist/qti-loader/index.d.ts +7 -1
  375. package/dist/qti-loader/index.js +5 -23
  376. package/dist/qti-loader/index.js.map +1 -1
  377. package/dist/qti-response-declaration-DAeBp8HH.d.ts +1008 -0
  378. package/dist/qti-response-declaration-Di9CsqiJ.d.ts +1012 -0
  379. package/dist/qti-response-declaration-ucAqd0qK.d.ts +1034 -0
  380. package/dist/qti-simple-choice-3M44uWiN.d.ts +1153 -0
  381. package/dist/qti-simple-choice-B5GnzbqW.d.ts +1080 -0
  382. package/dist/qti-simple-choice-BOLF9wXz.d.ts +1170 -0
  383. package/dist/qti-simple-choice-BeixIkA0.d.ts +1088 -0
  384. package/dist/qti-simple-choice-BiEjEO6s.d.ts +1152 -0
  385. package/dist/qti-simple-choice-Bo_ikO6H.d.ts +1198 -0
  386. package/dist/qti-simple-choice-C0CcrtK5.d.ts +1169 -0
  387. package/dist/qti-simple-choice-Cgh1-Jbr.d.cts +1185 -0
  388. package/dist/qti-simple-choice-Cgh1-Jbr.d.ts +1185 -0
  389. package/dist/{qti-simple-choice-DB7hqAMS.d.ts → qti-simple-choice-Cn5y-Ta8.d.ts} +1 -1
  390. package/dist/qti-simple-choice-D0GiMrqD.d.ts +1168 -0
  391. package/dist/qti-simple-choice-DxWcdKHi.d.ts +1158 -0
  392. package/dist/qti-simple-choice-R_LxBTp8.d.ts +1158 -0
  393. package/dist/qti-simple-choice-hAIyfF0z.d.ts +1114 -0
  394. package/dist/qti-simple-choice-o4rje1RA.d.ts +1176 -0
  395. package/dist/qti-simple-choice-v2GxpPNh.d.ts +1181 -0
  396. package/dist/qti-test/components/index.d.ts +10 -2
  397. package/dist/qti-test/components/index.js +22 -14
  398. package/dist/qti-test/components/styles.js +2 -2
  399. package/dist/qti-test/components/test-component.abstract.d.ts +8 -4
  400. package/dist/qti-test/components/test-component.abstract.js +5 -5
  401. package/dist/qti-test/components/test-container.d.ts +37 -0
  402. package/dist/qti-test/components/test-container.js +3782 -0
  403. package/dist/qti-test/components/test-container.js.map +1 -0
  404. package/dist/qti-test/components/test-end-attempt.d.ts +26 -0
  405. package/dist/qti-test/components/test-end-attempt.js +13 -0
  406. package/dist/qti-test/components/test-end-attempt.js.map +1 -0
  407. package/dist/qti-test/components/test-item-link.d.ts +9 -2
  408. package/dist/qti-test/components/test-item-link.js +7 -7
  409. package/dist/qti-test/components/test-next.d.ts +9 -2
  410. package/dist/qti-test/components/test-next.js +7 -7
  411. package/dist/qti-test/components/test-next.spec.css +2481 -0
  412. package/dist/qti-test/components/test-next.spec.css.map +1 -0
  413. package/dist/qti-test/components/test-next.spec.d.ts +3 -2
  414. package/dist/qti-test/components/test-next.spec.js +10 -9
  415. package/dist/qti-test/components/test-next.spec.js.map +1 -1
  416. package/dist/qti-test/components/test-paging-buttons-stamp.d.ts +8 -2
  417. package/dist/qti-test/components/test-paging-buttons-stamp.js +6 -6
  418. package/dist/qti-test/components/test-prev.d.ts +9 -2
  419. package/dist/qti-test/components/test-prev.js +7 -7
  420. package/dist/qti-test/components/test-show-correct-response.d.ts +26 -0
  421. package/dist/qti-test/components/test-show-correct-response.js +13 -0
  422. package/dist/qti-test/components/test-show-correct-response.js.map +1 -0
  423. package/dist/qti-test/components/test-view.d.ts +9 -2
  424. package/dist/qti-test/components/test-view.js +6 -6
  425. package/dist/qti-test/context/index.d.ts +6 -0
  426. package/dist/qti-test/context/index.js +9 -0
  427. package/dist/qti-test/context/index.js.map +1 -0
  428. package/dist/qti-test/context/test.context.d.ts +6 -0
  429. package/dist/qti-test/context/test.context.js +9 -0
  430. package/dist/qti-test/context/test.context.js.map +1 -0
  431. package/dist/qti-test/core/index.d.ts +36 -25
  432. package/dist/qti-test/core/index.js +9 -7
  433. package/dist/qti-test/index.cjs +4823 -0
  434. package/dist/qti-test/index.cjs.map +1 -0
  435. package/dist/qti-test/index.d.cts +304 -0
  436. package/dist/qti-test/index.d.ts +14 -0
  437. package/dist/qti-test/index.js +4746 -0
  438. package/dist/qti-test/index.js.map +1 -0
  439. package/dist/qti-test/mixins/index.d.ts +8 -0
  440. package/dist/qti-test/mixins/index.js +350 -0
  441. package/dist/qti-test/mixins/index.js.map +1 -0
  442. package/dist/qti-test/mixins/test-loader.mixin.d.ts +8 -0
  443. package/dist/qti-test/mixins/test-loader.mixin.js +240 -0
  444. package/dist/qti-test/mixins/test-loader.mixin.js.map +1 -0
  445. package/dist/qti-test/mixins/test-navigation.mixin.d.ts +22 -0
  446. package/dist/qti-test/mixins/test-navigation.mixin.js +64 -0
  447. package/dist/qti-test/mixins/test-navigation.mixin.js.map +1 -0
  448. package/dist/qti-test/mixins/test-view.mixin.d.ts +6 -0
  449. package/dist/qti-test/mixins/test-view.mixin.js +50 -0
  450. package/dist/qti-test/mixins/test-view.mixin.js.map +1 -0
  451. package/dist/qti-test/qti-assessment-test/index.d.ts +6 -0
  452. package/dist/qti-test/qti-assessment-test/index.js +221 -0
  453. package/dist/qti-test/qti-assessment-test/index.js.map +1 -0
  454. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.d.ts +6 -0
  455. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js +85 -0
  456. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js.map +1 -0
  457. package/dist/qti-test/qti-assessment-test/qti-assessment-section.d.ts +6 -0
  458. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js +73 -0
  459. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js.map +1 -0
  460. package/dist/qti-test/qti-assessment-test/qti-assessment-test.d.ts +6 -0
  461. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js +54 -0
  462. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js.map +1 -0
  463. package/dist/qti-test/qti-assessment-test/qti-test-part.d.ts +19 -0
  464. package/dist/qti-test/qti-assessment-test/qti-test-part.js +62 -0
  465. package/dist/qti-test/qti-assessment-test/qti-test-part.js.map +1 -0
  466. package/dist/qti-test/qti-test.d.ts +68 -0
  467. package/dist/qti-test/qti-test.js +500 -0
  468. package/dist/qti-test/qti-test.js.map +1 -0
  469. package/dist/qti-test/test-base.d.ts +6 -0
  470. package/dist/qti-test/test-base.js +137 -0
  471. package/dist/qti-test/test-base.js.map +1 -0
  472. package/dist/qti-transformers/index.cjs +316 -0
  473. package/dist/qti-transformers/index.cjs.map +1 -0
  474. package/dist/qti-transformers/index.d.cts +75 -0
  475. package/dist/qti-transformers/index.js +2 -2
  476. package/dist/test-base-BJwG9Ie8.d.ts +109 -0
  477. package/dist/test.context-Bx-606B3.d.ts +99 -0
  478. package/dist/{test.context-DKSpQHyg.d.ts → test.context-C2LBA3w4.d.ts} +11 -3
  479. package/dist/{test.context-K2w-1mWi.d.ts → test.context-CB5V4xJz.d.ts} +3 -3
  480. package/dist/{test-component.abstract-DWJ0XNiI.d.ts → test.context-CaENAJNk.d.ts} +12 -19
  481. package/dist/test.context-CmsDQ8k2.d.ts +99 -0
  482. package/dist/transformers/index.d.ts +76 -0
  483. package/dist/transformers/index.js +293 -0
  484. package/dist/transformers/index.js.map +1 -0
  485. package/dist/variables-cO3DzqJy.d.ts +33 -0
  486. package/dist/vscode.html-custom-data.json +247 -295
  487. package/package.json +26 -15
  488. package/cdn/chunk-4HKDXRGE.js +0 -5
  489. package/cdn/chunk-KUOLGIA5.js +0 -1
  490. package/cdn/chunk-LY27H7YF.js +0 -1
  491. package/cdn/chunk-OEBYNBRS.js +0 -129
  492. package/cdn/chunk-RM352RXQ.js +0 -5
  493. package/dist/chunk-4CSM2PCC.js.map +0 -1
  494. package/dist/chunk-E3656TSN.js.map +0 -1
  495. package/dist/chunk-NUXEGEMP.js +0 -65
  496. package/dist/chunk-NUXEGEMP.js.map +0 -1
  497. package/dist/chunk-O3GIZH57.js.map +0 -1
  498. package/dist/chunk-SLMQZKDH.js.map +0 -1
  499. package/dist/chunk-TAQAVEQ2.js.map +0 -1
  500. package/dist/chunk-TLPISJ3Z.js.map +0 -1
  501. /package/cdn/{chunk-V2RMP73O.js → chunk-IXSX4SJX.js} +0 -0
  502. /package/cdn/{chunk-GPDDPZFH.js → chunks/chunk-EHK76KRT.js} +0 -0
  503. /package/dist/{chunk-4YR7ZPE3.js.map → chunk-3G364JZC.js.map} +0 -0
  504. /package/dist/{chunk-QNR4WQAC.js.map → chunk-6TUE644E.js.map} +0 -0
  505. /package/dist/{chunk-2GKDJDI5.js.map → chunk-6ZMD232X.js.map} +0 -0
  506. /package/dist/{chunk-3F3DCHHM.js.map → chunk-AYRSHIHA.js.map} +0 -0
  507. /package/dist/{chunk-EXJQ3ZUE.js.map → chunk-BN32D5J2.js.map} +0 -0
  508. /package/dist/{chunk-ERLGA6TC.js.map → chunk-CJRXRBRQ.js.map} +0 -0
  509. /package/dist/{chunk-KVFH5VBC.js.map → chunk-GPJ6WTE5.js.map} +0 -0
  510. /package/dist/{chunk-KI3A6ZT6.js.map → chunk-KAUHKHPH.js.map} +0 -0
  511. /package/dist/{chunk-LJU3MHXE.js.map → chunk-UJTJIU3C.js.map} +0 -0
  512. /package/dist/{chunk-UDWEOEOS.js.map → chunk-XVQZ5JI5.js.map} +0 -0
@@ -0,0 +1 @@
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 async connectedCallback(): Promise<void> {\n super.connectedCallback();\n await this.updateComplete;\n this.dispatchEvent(new CustomEvent('qti-test-connected', { detail: this }));\n }\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-test': QtiTest;\n }\n}\n","import { qtiTransformItem } from '../../../qti-transformers';\nimport { property } from 'lit/decorators.js';\nimport type { TestBase } from '../test-base';\nimport type { OutcomeVariable } from '../../../exports/variables';\nimport type { QtiAssessmentItemRef } from '../qti-assessment-test';\n\nconst setSessionData = <T>(key: string, value?: T): void => sessionStorage.setItem(key, JSON.stringify(value));\nconst getSessionData = <T>(key: string): T | null =>\n sessionStorage.getItem(key) ? JSON.parse(sessionStorage.getItem(key)!) : null;\n\ntype Constructor<T = {}> = abstract new (...args: any[]) => T;\n\ndeclare class TestLoaderInterface {}\nexport const TestLoaderMixin = <T extends Constructor<TestBase>>(superClass: T) => {\n abstract class TestLoaderClass extends superClass {\n /** Items will be scored on everyinteraction when `qti-assessment-item` is not set to adaptive, and the `SCORE` outcome identifier is not set to be \"human\" | \"externalMachine\" */\n @property({ type: Boolean, attribute: 'auto-score-items' }) autoScoreItems = false;\n @property({ type: Boolean, attribute: 'auto-store-restore' }) autoStoreRestoreContext = false;\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-test-connected', () => {\n if (this.autoStoreRestoreContext) {\n this.context = getSessionData(`testcontext`); /* 4. Set the context */\n }\n });\n\n this.addEventListener('qti-load-item-request' /* 5. Request the item */, ({ detail }: CustomEvent) => {\n detail.promise = (async () => {\n const api = await qtiTransformItem().load(`${detail.href}`, detail.cancelPreviousRequest);\n return api.htmlDoc();\n })();\n });\n\n this.addEventListener('qti-interaction-changed', (e: CustomEvent<any>) => {\n if (this.autoScoreItems) {\n const qtiItemEl = this.testElement.querySelector<QtiAssessmentItemRef>(\n `qti-assessment-item-ref[identifier=\"${this.context.navItemId}\"]`\n );\n const qtiAssessmentItem = qtiItemEl.assessmentItem;\n const scoreOutcomeIdentifier = qtiAssessmentItem.variables.find(\n v => v.identifier === 'SCORE'\n ) as OutcomeVariable;\n if (scoreOutcomeIdentifier.externalScored === null && qtiAssessmentItem.adaptive === 'false') {\n qtiAssessmentItem.processResponse();\n if (this.autoStoreRestoreContext) {\n setSessionData(`testcontext`, this.context);\n }\n }\n } else {\n if (this.autoStoreRestoreContext) {\n setSessionData(`testcontext`, this.context);\n }\n }\n });\n }\n }\n\n return TestLoaderClass as Constructor<TestLoaderInterface> & T;\n};\n","import type { QtiAssessmentItemRef } from '../qti-assessment-test';\nimport type { TestBase } from '../test-base';\n\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';\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 /**\n * When the test is connected, the items are updated in the test context.\n * An existing context item is updated with the itemRef properties if nessesary.\n */\n this.addEventListener('qti-assessment-test-connected', (e: CustomEvent<QtiAssessmentTest>) => {\n const qtiAssessmentTest = e.detail;\n this.testElement = qtiAssessmentTest;\n\n const items = Array.from(qtiAssessmentTest.querySelectorAll('qti-assessment-item-ref')).map(itemRef => {\n const existingItem = this._testContext.items.find(item => item.identifier === itemRef.identifier);\n\n return {\n ...existingItem, // Spread all existing properties\n href: existingItem?.href || itemRef.href,\n identifier: existingItem?.identifier || itemRef.identifier,\n category: existingItem?.category || itemRef.category,\n variables: existingItem?.variables || [\n {\n identifier: 'completionStatus',\n value: 'not_attempted',\n type: 'outcome'\n }\n ]\n };\n });\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","import type { OutcomeVariable, VariableDeclaration } from '../../../exports/variables';\nimport type { QtiOutcomeProcessing } from '../../../qti-components';\nimport type { TestBase } from '../test-base';\n\ntype Constructor<T = {}> = abstract new (...args: any[]) => T;\n\ndeclare class TestProcessingInterface {\n updateOutcomeVariable(identifier: string, value: string | string[] | undefined): void;\n getOutcome(identifier: string): Readonly<OutcomeVariable>;\n getVariable(identifier: string): Readonly<VariableDeclaration<string | string[] | null>>;\n outcomeProcessing(): boolean;\n}\nexport const TestProcessingMixin = <T extends Constructor<TestBase>>(superClass: T) => {\n abstract class TestProcessingElement extends superClass {\n constructor(...args: any[]) {\n super(...args);\n this.addEventListener('qti-register-variable', (e: CustomEvent<{ variable: any }>) => {\n this._testContext = {\n ...this._testContext,\n testOutcomeVariables: [...this._testContext.testOutcomeVariables, e.detail.variable]\n };\n e.stopPropagation();\n });\n // wordt aangeroepen vanuit de processingtemplate\n this.addEventListener(\n 'qti-set-outcome-value',\n (e: CustomEvent<{ outcomeIdentifier: string; value: string | string[] }>) => {\n const { outcomeIdentifier, value } = e.detail;\n this.updateOutcomeVariable(outcomeIdentifier, value);\n e.stopPropagation();\n }\n );\n }\n\n outcomeProcessing(): boolean {\n const outcomeProcessor = this.querySelector('qti-outcome-processing') as unknown as QtiOutcomeProcessing;\n if (!outcomeProcessor) return false;\n outcomeProcessor?.process();\n return true;\n }\n\n /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */\n\n public updateOutcomeVariable(identifier: string, value: string | string[] | undefined) {\n const outcomeVariable = this.getOutcome(identifier);\n if (!outcomeVariable) {\n console.warn(`Can not set qti-outcome-identifier: ${identifier}, it is not available`);\n return;\n }\n this._testContext = {\n ...this._testContext,\n testOutcomeVariables: this._testContext.testOutcomeVariables.map(v => {\n if (v.identifier !== identifier) {\n return v;\n }\n return {\n ...v,\n value: outcomeVariable.cardinality === 'single' ? value : [...v.value, value as string]\n };\n })\n };\n }\n\n public getOutcome(identifier: string): Readonly<OutcomeVariable> {\n return this.getVariable(identifier) as OutcomeVariable;\n }\n public getVariable(identifier: string): Readonly<VariableDeclaration<string | string[] | null>> {\n return this._testContext.testOutcomeVariables.find(v => v.identifier === identifier) || null;\n }\n /* --------------------------- ENABLED WHEN UNIT TESTING OUTCOME PROCESSING ------------------------------------ */\n }\n\n return TestProcessingElement as Constructor<TestProcessingInterface> & T;\n};\n","import { consume } from '@lit/context';\nimport { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\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","property","property","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"]}
@@ -0,0 +1,337 @@
1
+ import customElement from "eslint-plugin-custom-element";
2
+ import html from "@html-eslint/eslint-plugin";
3
+ import htmlParser from "@html-eslint/parser";
4
+
5
+ export const rules = {
6
+ "custom-element/required-attrs": ["error"],
7
+
8
+ "custom-element/no-deprecated-attrs": [
9
+ "warn",
10
+ {
11
+ tag: "qti-choice-interaction",
12
+ attr: "orientation",
13
+ },
14
+ ],
15
+
16
+ "custom-element/constrained-attrs": ["error"],
17
+
18
+ "custom-element/no-deprecated-tags": ["warn"],
19
+
20
+ "custom-element/no-boolean-attr-values": [
21
+ "error",
22
+ {
23
+ tag: "undefined",
24
+ attr: "disabled",
25
+ },
26
+ {
27
+ tag: "undefined",
28
+ attr: "readonly",
29
+ },
30
+ {
31
+ tag: "qti-assessment-item",
32
+ attr: "disabled",
33
+ },
34
+ {
35
+ tag: "qti-assessment-item",
36
+ attr: "readonly",
37
+ },
38
+ {
39
+ tag: "qti-extended-text-interaction",
40
+ attr: "disabled",
41
+ },
42
+ {
43
+ tag: "qti-extended-text-interaction",
44
+ attr: "readonly",
45
+ },
46
+ {
47
+ tag: "qti-text-entry-interaction",
48
+ attr: "disabled",
49
+ },
50
+ {
51
+ tag: "qti-text-entry-interaction",
52
+ attr: "readonly",
53
+ },
54
+ {
55
+ tag: "qti-hottext-interaction",
56
+ attr: "disabled",
57
+ },
58
+ {
59
+ tag: "qti-hottext-interaction",
60
+ attr: "readonly",
61
+ },
62
+ {
63
+ tag: "qti-inline-choice-interaction",
64
+ attr: "disabled",
65
+ },
66
+ {
67
+ tag: "qti-inline-choice-interaction",
68
+ attr: "readonly",
69
+ },
70
+ {
71
+ tag: "qti-simple-choice",
72
+ attr: "aria-disabled",
73
+ },
74
+ {
75
+ tag: "qti-simple-choice",
76
+ attr: "aria-readonly",
77
+ },
78
+ {
79
+ tag: "qti-choice-interaction",
80
+ attr: "disabled",
81
+ },
82
+ {
83
+ tag: "qti-choice-interaction",
84
+ attr: "readonly",
85
+ },
86
+ {
87
+ tag: "qti-portable-custom-interaction",
88
+ attr: "disabled",
89
+ },
90
+ {
91
+ tag: "qti-portable-custom-interaction",
92
+ attr: "readonly",
93
+ },
94
+ {
95
+ tag: "qti-simple-associable-choice",
96
+ attr: "fixed",
97
+ },
98
+ {
99
+ tag: "qti-simple-associable-choice",
100
+ attr: "aria-disabled",
101
+ },
102
+ {
103
+ tag: "qti-simple-associable-choice",
104
+ attr: "aria-readonly",
105
+ },
106
+ {
107
+ tag: "qti-associate-interaction",
108
+ attr: "disabled",
109
+ },
110
+ {
111
+ tag: "qti-associate-interaction",
112
+ attr: "readonly",
113
+ },
114
+ {
115
+ tag: "qti-custom-interaction",
116
+ attr: "disabled",
117
+ },
118
+ {
119
+ tag: "qti-custom-interaction",
120
+ attr: "readonly",
121
+ },
122
+ {
123
+ tag: "qti-end-attempt-interaction",
124
+ attr: "disabled",
125
+ },
126
+ {
127
+ tag: "qti-end-attempt-interaction",
128
+ attr: "readonly",
129
+ },
130
+ {
131
+ tag: "qti-gap-match-interaction",
132
+ attr: "disabled",
133
+ },
134
+ {
135
+ tag: "qti-gap-match-interaction",
136
+ attr: "readonly",
137
+ },
138
+ {
139
+ tag: "qti-hotspot-choice",
140
+ attr: "aria-disabled",
141
+ },
142
+ {
143
+ tag: "qti-hotspot-choice",
144
+ attr: "aria-readonly",
145
+ },
146
+ {
147
+ tag: "qti-graphic-associate-interaction",
148
+ attr: "disabled",
149
+ },
150
+ {
151
+ tag: "qti-graphic-associate-interaction",
152
+ attr: "readonly",
153
+ },
154
+ {
155
+ tag: "qti-graphic-gap-match-interaction",
156
+ attr: "disabled",
157
+ },
158
+ {
159
+ tag: "qti-graphic-gap-match-interaction",
160
+ attr: "readonly",
161
+ },
162
+ {
163
+ tag: "qti-graphic-order-interaction",
164
+ attr: "disabled",
165
+ },
166
+ {
167
+ tag: "qti-graphic-order-interaction",
168
+ attr: "readonly",
169
+ },
170
+ {
171
+ tag: "qti-hotspot-interaction",
172
+ attr: "disabled",
173
+ },
174
+ {
175
+ tag: "qti-hotspot-interaction",
176
+ attr: "readonly",
177
+ },
178
+ {
179
+ tag: "qti-match-interaction",
180
+ attr: "disabled",
181
+ },
182
+ {
183
+ tag: "qti-match-interaction",
184
+ attr: "readonly",
185
+ },
186
+ {
187
+ tag: "qti-media-interaction",
188
+ attr: "disabled",
189
+ },
190
+ {
191
+ tag: "qti-media-interaction",
192
+ attr: "readonly",
193
+ },
194
+ {
195
+ tag: "qti-order-interaction",
196
+ attr: "disabled",
197
+ },
198
+ {
199
+ tag: "qti-order-interaction",
200
+ attr: "readonly",
201
+ },
202
+ {
203
+ tag: "qti-select-point-interaction",
204
+ attr: "disabled",
205
+ },
206
+ {
207
+ tag: "qti-select-point-interaction",
208
+ attr: "readonly",
209
+ },
210
+ {
211
+ tag: "qti-slider-interaction",
212
+ attr: "step-label",
213
+ },
214
+ {
215
+ tag: "qti-slider-interaction",
216
+ attr: "reverse",
217
+ },
218
+ {
219
+ tag: "qti-slider-interaction",
220
+ attr: "disabled",
221
+ },
222
+ {
223
+ tag: "qti-slider-interaction",
224
+ attr: "readonly",
225
+ },
226
+ {
227
+ tag: "qti-gap-text",
228
+ attr: "aria-disabled",
229
+ },
230
+ {
231
+ tag: "qti-gap-text",
232
+ attr: "aria-readonly",
233
+ },
234
+ {
235
+ tag: "qti-hottext",
236
+ attr: "aria-disabled",
237
+ },
238
+ {
239
+ tag: "qti-hottext",
240
+ attr: "aria-readonly",
241
+ },
242
+ {
243
+ tag: "test-element",
244
+ attr: "disabled",
245
+ },
246
+ {
247
+ tag: "test-element",
248
+ attr: "readonly",
249
+ },
250
+ {
251
+ tag: "test-element",
252
+ attr: "disabled",
253
+ },
254
+ {
255
+ tag: "test-element",
256
+ attr: "readonly",
257
+ },
258
+ {
259
+ tag: "test-element",
260
+ attr: "disabled",
261
+ },
262
+ {
263
+ tag: "test-element",
264
+ attr: "readonly",
265
+ },
266
+ {
267
+ tag: "qti-assessment-item-ref",
268
+ attr: "required",
269
+ },
270
+ {
271
+ tag: "qti-assessment-item-ref",
272
+ attr: "fixed",
273
+ },
274
+ {
275
+ tag: "qti-assessment-section",
276
+ attr: "fixed",
277
+ },
278
+ {
279
+ tag: "qti-assessment-section",
280
+ attr: "visible",
281
+ },
282
+ {
283
+ tag: "qti-assessment-section",
284
+ attr: "keep-together",
285
+ },
286
+ ],
287
+
288
+ "@html-eslint/no-duplicate-attrs": "off",
289
+ "@html-eslint/no-duplicate-id": "off",
290
+ "@html-eslint/no-inline-styles": "off",
291
+ "@html-eslint/no-obsolete-tags": "off",
292
+ "@html-eslint/no-restricted-attr-values": "off",
293
+ "@html-eslint/no-restricted-attrs": "off",
294
+ "@html-eslint/no-script-style-type": "off",
295
+ "@html-eslint/no-target-blank": "off",
296
+ "@html-eslint/require-attrs": "off",
297
+ "@html-eslint/require-button-type": "off",
298
+ "@html-eslint/require-closing-tags": "off",
299
+ "@html-eslint/require-doctype": "off",
300
+ "@html-eslint/require-li-container": "off",
301
+ "@html-eslint/require-meta-charset": "off",
302
+ "@html-eslint/no-multiple-h1": "off",
303
+ "@html-eslint/require-lang": "off",
304
+ "@html-eslint/require-meta-description": "off",
305
+ "@html-eslint/require-open-graph-protocol": "off",
306
+ "@html-eslint/require-title": "off",
307
+ "@html-eslint/no-abstract-roles": "off",
308
+ "@html-eslint/no-accesskey-attrs": "off",
309
+ "@html-eslint/no-aria-hidden-body": "off",
310
+ "@html-eslint/no-non-scalable-viewport": "off",
311
+ "@html-eslint/no-positive-tabindex": "off",
312
+ "@html-eslint/no-skip-heading-levels": "off",
313
+ "@html-eslint/require-frame-title": "off",
314
+ "@html-eslint/require-img-alt": "off",
315
+ "@html-eslint/require-meta-viewport": "off",
316
+ "@html-eslint/element-newline": "off",
317
+ "@html-eslint/id-naming-convention": "off",
318
+ "@html-eslint/indent": "off",
319
+ "@html-eslint/lowercase": "off",
320
+ "@html-eslint/no-extra-spacing-attrs": "off",
321
+ "@html-eslint/no-multiple-empty-lines": "off",
322
+ "@html-eslint/no-trailing-spaces": "off",
323
+ "@html-eslint/quotes": "off",
324
+ "@html-eslint/sort-attrs": "off",
325
+ };
326
+
327
+ export default {
328
+ rules,
329
+ recommendedConfig: {
330
+ files: ["**/*.html"],
331
+ languageOptions: {
332
+ parser: htmlParser,
333
+ },
334
+ plugins: { html, "custom-element": customElement },
335
+ rules,
336
+ },
337
+ };