@citolab/qti-components 7.0.8 → 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 (538) 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-SATSEEWJ.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-T2KKTMAT.js → chunk-KGVJXME7.js} +84 -84
  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 +112 -86
  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 +33 -30
  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-7RBGYKOX.js +0 -5
  173. package/cdn/chunks/chunk-7XYBFL7U.js +0 -934
  174. package/cdn/chunks/chunk-AJJJAZWM.js +0 -1
  175. package/cdn/chunks/chunk-ANDPD7F2.js +0 -5
  176. package/cdn/chunks/chunk-ARHBUT6F.js +0 -5
  177. package/cdn/chunks/chunk-AUHO2E7V.js +0 -934
  178. package/cdn/chunks/chunk-CZ3CSGCE.js +0 -934
  179. package/cdn/chunks/chunk-D3GR6AUG.js +0 -43
  180. package/cdn/chunks/chunk-DZCKF45D.js +0 -5
  181. package/cdn/chunks/chunk-EFU4L43Q.js +0 -8
  182. package/cdn/chunks/chunk-FM5C34DM.js +0 -934
  183. package/cdn/chunks/chunk-FRS2J3OS.js +0 -59
  184. package/cdn/chunks/chunk-GMK2YRB2.js +0 -934
  185. package/cdn/chunks/chunk-H2V2RXUW.js +0 -11
  186. package/cdn/chunks/chunk-HUMOYGEM.js +0 -43
  187. package/cdn/chunks/chunk-IMJOPCFR.js +0 -1
  188. package/cdn/chunks/chunk-IQZ7AOCQ.js +0 -8
  189. package/cdn/chunks/chunk-J3JSSCM6.js +0 -5
  190. package/cdn/chunks/chunk-KHLUVO6Y.js +0 -8
  191. package/cdn/chunks/chunk-LARBLB7K.js +0 -8
  192. package/cdn/chunks/chunk-LNFCEHB3.js +0 -934
  193. package/cdn/chunks/chunk-MJMONWKB.js +0 -3539
  194. package/cdn/chunks/chunk-N5OHGRGG.js +0 -8
  195. package/cdn/chunks/chunk-NDHSIO2G.js +0 -8
  196. package/cdn/chunks/chunk-NRY3WHJD.js +0 -5
  197. package/cdn/chunks/chunk-PKT2SJQD.js +0 -8
  198. package/cdn/chunks/chunk-PPWEIKLT.js +0 -1
  199. package/cdn/chunks/chunk-PT523RSK.js +0 -8
  200. package/cdn/chunks/chunk-QD3NT5PG.js +0 -934
  201. package/cdn/chunks/chunk-QTK4CPHP.js +0 -8
  202. package/cdn/chunks/chunk-QV6I5NVQ.js +0 -8
  203. package/cdn/chunks/chunk-R33OODNX.js +0 -1
  204. package/cdn/chunks/chunk-RIXTWE2H.js +0 -8
  205. package/cdn/chunks/chunk-ROZIP5LG.js +0 -8
  206. package/cdn/chunks/chunk-RPZVSBLM.js +0 -8
  207. package/cdn/chunks/chunk-SXM25YH3.js +0 -934
  208. package/cdn/chunks/chunk-TEYXRLTI.js +0 -8
  209. package/cdn/chunks/chunk-TQBDBMWL.js +0 -5
  210. package/cdn/chunks/chunk-TV3SPOLH.js +0 -8
  211. package/cdn/chunks/chunk-TVDTF6P6.js +0 -934
  212. package/cdn/chunks/chunk-U2TE6TOV.js +0 -934
  213. package/cdn/chunks/chunk-W5Y3ZU2W.js +0 -5
  214. package/cdn/chunks/chunk-WPGJ54IP.js +0 -1
  215. package/cdn/chunks/chunk-YHWMZAZD.js +0 -43
  216. package/cdn/chunks/chunk-YVZ742ID.js +0 -934
  217. package/cdn/chunks/chunk-YWH4TGMA.js +0 -5
  218. package/cdn/chunks/chunk-YXR6KSZI.js +0 -11
  219. package/cdn/qti-components/index.global.js +0 -226
  220. package/cdn/qti-item/components/index.global.js +0 -149
  221. package/cdn/qti-item/components/index.js +0 -3549
  222. package/cdn/qti-item/components/item-container.global.js +0 -149
  223. package/cdn/qti-item/components/item-container.js +0 -3549
  224. package/cdn/qti-item/core/index.global.js +0 -149
  225. package/cdn/qti-item/index.global.js +0 -149
  226. package/cdn/qti-item/index.js +0 -3549
  227. package/cdn/qti-item/qti-item.global.js +0 -114
  228. package/cdn/qti-item/qti-item.js +0 -1
  229. package/cdn/qti-loader/index.global.js +0 -1
  230. package/cdn/qti-test/components/index.global.js +0 -207
  231. package/cdn/qti-test/components/styles.global.js +0 -44
  232. package/cdn/qti-test/components/test-component.abstract.global.js +0 -170
  233. package/cdn/qti-test/components/test-component.abstract.js +0 -1
  234. package/cdn/qti-test/components/test-container.global.js +0 -149
  235. package/cdn/qti-test/components/test-item-link.global.js +0 -170
  236. package/cdn/qti-test/components/test-next.global.js +0 -170
  237. package/cdn/qti-test/components/test-next.spec.css +0 -1
  238. package/cdn/qti-test/components/test-next.spec.global.js +0 -64
  239. package/cdn/qti-test/components/test-next.spec.js +0 -713
  240. package/cdn/qti-test/components/test-paging-buttons-stamp.global.js +0 -207
  241. package/cdn/qti-test/components/test-prev.global.js +0 -170
  242. package/cdn/qti-test/components/test-view.global.js +0 -170
  243. package/cdn/qti-test/context/index.global.js +0 -58
  244. package/cdn/qti-test/context/index.js +0 -1
  245. package/cdn/qti-test/context/test.context.global.js +0 -58
  246. package/cdn/qti-test/context/test.context.js +0 -1
  247. package/cdn/qti-test/core/index.global.js +0 -205
  248. package/cdn/qti-test/index.global.js +0 -242
  249. package/cdn/qti-test/index.js +0 -3598
  250. package/cdn/qti-test/mixins/index.global.js +0 -1
  251. package/cdn/qti-test/mixins/index.js +0 -23
  252. package/cdn/qti-test/mixins/test-loader.mixin.global.js +0 -1
  253. package/cdn/qti-test/mixins/test-loader.mixin.js +0 -23
  254. package/cdn/qti-test/mixins/test-navigation.mixin.global.js +0 -1
  255. package/cdn/qti-test/mixins/test-navigation.mixin.js +0 -1
  256. package/cdn/qti-test/mixins/test-view.mixin.global.js +0 -1
  257. package/cdn/qti-test/mixins/test-view.mixin.js +0 -1
  258. package/cdn/qti-test/qti-assessment-test/index.global.js +0 -170
  259. package/cdn/qti-test/qti-assessment-test/index.js +0 -1
  260. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.global.js +0 -170
  261. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.js +0 -1
  262. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.global.js +0 -170
  263. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.js +0 -1
  264. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.global.js +0 -170
  265. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.js +0 -1
  266. package/cdn/qti-test/qti-assessment-test/qti-test-part.global.js +0 -114
  267. package/cdn/qti-test/qti-assessment-test/qti-test-part.js +0 -1
  268. package/cdn/qti-test/qti-test.global.js +0 -170
  269. package/cdn/qti-test/qti-test.js +0 -23
  270. package/cdn/qti-test/test-base.global.js +0 -170
  271. package/cdn/qti-test/test-base.js +0 -1
  272. package/cdn/qti-transformers/index.global.js +0 -1
  273. package/dist/chunk-2CHF3TMY.js.map +0 -1
  274. package/dist/chunk-2LWLX7WV.js +0 -6307
  275. package/dist/chunk-2LWLX7WV.js.map +0 -1
  276. package/dist/chunk-2OA7E3E7.js +0 -294
  277. package/dist/chunk-2OA7E3E7.js.map +0 -1
  278. package/dist/chunk-3G364JZC.js +0 -72
  279. package/dist/chunk-3G364JZC.js.map +0 -1
  280. package/dist/chunk-44VE5POH.js +0 -55
  281. package/dist/chunk-4YG2FPKK.js +0 -31
  282. package/dist/chunk-4YG2FPKK.js.map +0 -1
  283. package/dist/chunk-6TUE644E.js +0 -569
  284. package/dist/chunk-6TUE644E.js.map +0 -1
  285. package/dist/chunk-6ZMD232X.js +0 -78
  286. package/dist/chunk-6ZMD232X.js.map +0 -1
  287. package/dist/chunk-AYRSHIHA.js +0 -50
  288. package/dist/chunk-AYRSHIHA.js.map +0 -1
  289. package/dist/chunk-BN32D5J2.js +0 -43
  290. package/dist/chunk-BN32D5J2.js.map +0 -1
  291. package/dist/chunk-CJRXRBRQ.js +0 -50
  292. package/dist/chunk-CJRXRBRQ.js.map +0 -1
  293. package/dist/chunk-GPJ6WTE5.js +0 -118
  294. package/dist/chunk-GPJ6WTE5.js.map +0 -1
  295. package/dist/chunk-KAUHKHPH.js +0 -50
  296. package/dist/chunk-KAUHKHPH.js.map +0 -1
  297. package/dist/chunk-MAC76UNI.js +0 -1
  298. package/dist/chunk-QYN5S4EM.js +0 -107
  299. package/dist/chunk-QYN5S4EM.js.map +0 -1
  300. package/dist/chunk-UB5K44DB.js +0 -30
  301. package/dist/chunk-UB5K44DB.js.map +0 -1
  302. package/dist/chunk-UJTJIU3C.js +0 -43
  303. package/dist/chunk-UJTJIU3C.js.map +0 -1
  304. package/dist/chunk-XVQZ5JI5.js +0 -50
  305. package/dist/chunk-XVQZ5JI5.js.map +0 -1
  306. package/dist/chunk-XW3PQRKW.js +0 -6306
  307. package/dist/chunk-XW3PQRKW.js.map +0 -1
  308. package/dist/chunk-YQ7EXOAK.js +0 -10
  309. package/dist/chunk-YQ7EXOAK.js.map +0 -1
  310. package/dist/chunks/chunk-2V6LQV2K.js +0 -50
  311. package/dist/chunks/chunk-2V6LQV2K.js.map +0 -1
  312. package/dist/chunks/chunk-3EU75IUF.js +0 -118
  313. package/dist/chunks/chunk-3EU75IUF.js.map +0 -1
  314. package/dist/chunks/chunk-3QQFMVDS.js +0 -118
  315. package/dist/chunks/chunk-3QQFMVDS.js.map +0 -1
  316. package/dist/chunks/chunk-4GNVYCBN.js +0 -627
  317. package/dist/chunks/chunk-4GNVYCBN.js.map +0 -1
  318. package/dist/chunks/chunk-4MQV5IRV.js +0 -59
  319. package/dist/chunks/chunk-4MQV5IRV.js.map +0 -1
  320. package/dist/chunks/chunk-4WVLWWYJ.js +0 -50
  321. package/dist/chunks/chunk-4WVLWWYJ.js.map +0 -1
  322. package/dist/chunks/chunk-5KVGRLYT.js +0 -10
  323. package/dist/chunks/chunk-5KVGRLYT.js.map +0 -1
  324. package/dist/chunks/chunk-5PCD2B62.js +0 -6091
  325. package/dist/chunks/chunk-5PCD2B62.js.map +0 -1
  326. package/dist/chunks/chunk-5RTLOB3Q.js +0 -59
  327. package/dist/chunks/chunk-5RTLOB3Q.js.map +0 -1
  328. package/dist/chunks/chunk-6JXR63MH.js +0 -50
  329. package/dist/chunks/chunk-6JXR63MH.js.map +0 -1
  330. package/dist/chunks/chunk-6PAEJQSQ.js +0 -6058
  331. package/dist/chunks/chunk-6PAEJQSQ.js.map +0 -1
  332. package/dist/chunks/chunk-6QT4LIPL.js +0 -623
  333. package/dist/chunks/chunk-6QT4LIPL.js.map +0 -1
  334. package/dist/chunks/chunk-7QMCKYDR.js +0 -43
  335. package/dist/chunks/chunk-7QMCKYDR.js.map +0 -1
  336. package/dist/chunks/chunk-A24F75DB.js +0 -72
  337. package/dist/chunks/chunk-A24F75DB.js.map +0 -1
  338. package/dist/chunks/chunk-AUWATZ65.js +0 -10
  339. package/dist/chunks/chunk-AUWATZ65.js.map +0 -1
  340. package/dist/chunks/chunk-AXTEKPP5.js +0 -6084
  341. package/dist/chunks/chunk-AXTEKPP5.js.map +0 -1
  342. package/dist/chunks/chunk-B6MJCAOF.js +0 -6063
  343. package/dist/chunks/chunk-B6MJCAOF.js.map +0 -1
  344. package/dist/chunks/chunk-BJ2JLJIJ.js +0 -623
  345. package/dist/chunks/chunk-BJ2JLJIJ.js.map +0 -1
  346. package/dist/chunks/chunk-BPHQLJWE.js.map +0 -1
  347. package/dist/chunks/chunk-CD3E4M5Y.js +0 -107
  348. package/dist/chunks/chunk-CD3E4M5Y.js.map +0 -1
  349. package/dist/chunks/chunk-CEXAR7BF.js +0 -52
  350. package/dist/chunks/chunk-CEXAR7BF.js.map +0 -1
  351. package/dist/chunks/chunk-CWYAQA25.js +0 -6067
  352. package/dist/chunks/chunk-CWYAQA25.js.map +0 -1
  353. package/dist/chunks/chunk-D3QX5N57.js +0 -6117
  354. package/dist/chunks/chunk-D3QX5N57.js.map +0 -1
  355. package/dist/chunks/chunk-DLUJN2FW.js.map +0 -1
  356. package/dist/chunks/chunk-DNHDFXTV.js +0 -59
  357. package/dist/chunks/chunk-DNHDFXTV.js.map +0 -1
  358. package/dist/chunks/chunk-E4TWZ2DL.js.map +0 -1
  359. package/dist/chunks/chunk-FV7HWK54.js.map +0 -1
  360. package/dist/chunks/chunk-GQ5P3NWC.js.map +0 -1
  361. package/dist/chunks/chunk-GSWZT6N2.js +0 -50
  362. package/dist/chunks/chunk-GSWZT6N2.js.map +0 -1
  363. package/dist/chunks/chunk-HHVRU3AJ.js +0 -107
  364. package/dist/chunks/chunk-HHVRU3AJ.js.map +0 -1
  365. package/dist/chunks/chunk-HOTNM5DT.js +0 -1
  366. package/dist/chunks/chunk-IWG66KQQ.js +0 -107
  367. package/dist/chunks/chunk-IWG66KQQ.js.map +0 -1
  368. package/dist/chunks/chunk-J2SHENRN.js.map +0 -1
  369. package/dist/chunks/chunk-K6ATVWMP.js +0 -6091
  370. package/dist/chunks/chunk-K6ATVWMP.js.map +0 -1
  371. package/dist/chunks/chunk-KOEILLVS.js.map +0 -1
  372. package/dist/chunks/chunk-KYAIMBP5.js +0 -78
  373. package/dist/chunks/chunk-KYAIMBP5.js.map +0 -1
  374. package/dist/chunks/chunk-LNISKMIL.js +0 -6063
  375. package/dist/chunks/chunk-LNISKMIL.js.map +0 -1
  376. package/dist/chunks/chunk-LNKJEW5E.js +0 -627
  377. package/dist/chunks/chunk-LNKJEW5E.js.map +0 -1
  378. package/dist/chunks/chunk-LXJA3VP2.js +0 -72
  379. package/dist/chunks/chunk-LXJA3VP2.js.map +0 -1
  380. package/dist/chunks/chunk-MLT7V47R.js +0 -100
  381. package/dist/chunks/chunk-MLT7V47R.js.map +0 -1
  382. package/dist/chunks/chunk-N5FPZNMX.js +0 -43
  383. package/dist/chunks/chunk-N5FPZNMX.js.map +0 -1
  384. package/dist/chunks/chunk-NHA53UTY.js.map +0 -1
  385. package/dist/chunks/chunk-NZQKGIJP.js.map +0 -1
  386. package/dist/chunks/chunk-O6WEZVEM.js +0 -43
  387. package/dist/chunks/chunk-O6WEZVEM.js.map +0 -1
  388. package/dist/chunks/chunk-OIRWOI3E.js.map +0 -1
  389. package/dist/chunks/chunk-PWOY6REC.js +0 -6064
  390. package/dist/chunks/chunk-PWOY6REC.js.map +0 -1
  391. package/dist/chunks/chunk-QJELKGWM.js +0 -6061
  392. package/dist/chunks/chunk-QJELKGWM.js.map +0 -1
  393. package/dist/chunks/chunk-QUB54PXZ.js +0 -50
  394. package/dist/chunks/chunk-QUB54PXZ.js.map +0 -1
  395. package/dist/chunks/chunk-RX3BRYYI.js +0 -59
  396. package/dist/chunks/chunk-RX3BRYYI.js.map +0 -1
  397. package/dist/chunks/chunk-UEEMM6H2.js +0 -6090
  398. package/dist/chunks/chunk-UEEMM6H2.js.map +0 -1
  399. package/dist/chunks/chunk-UFYWCLXF.js +0 -10
  400. package/dist/chunks/chunk-UFYWCLXF.js.map +0 -1
  401. package/dist/chunks/chunk-UN2IFSGC.js +0 -1
  402. package/dist/chunks/chunk-VAPB5TN4.js +0 -46
  403. package/dist/chunks/chunk-VAPB5TN4.js.map +0 -1
  404. package/dist/chunks/chunk-VBF3GCZK.js +0 -50
  405. package/dist/chunks/chunk-VBF3GCZK.js.map +0 -1
  406. package/dist/chunks/chunk-W4272Q5U.js.map +0 -1
  407. package/dist/chunks/chunk-WWN5AD6V.js.map +0 -1
  408. package/dist/chunks/chunk-X226BX2U.js +0 -78
  409. package/dist/chunks/chunk-X226BX2U.js.map +0 -1
  410. package/dist/chunks/chunk-XCHS3RTZ.js +0 -107
  411. package/dist/chunks/chunk-XCHS3RTZ.js.map +0 -1
  412. package/dist/chunks/chunk-YFC3BVN2.js +0 -78
  413. package/dist/chunks/chunk-YFC3BVN2.js.map +0 -1
  414. package/dist/chunks/chunk-YOXF6JPS.js.map +0 -1
  415. package/dist/chunks/chunk-YQB6YLNW.js +0 -78
  416. package/dist/chunks/chunk-YQB6YLNW.js.map +0 -1
  417. package/dist/chunks/chunk-Z5THRO6Z.js +0 -46
  418. package/dist/chunks/chunk-Z5THRO6Z.js.map +0 -1
  419. package/dist/chunks/chunk-ZHAJ3CMP.js +0 -6091
  420. package/dist/chunks/chunk-ZHAJ3CMP.js.map +0 -1
  421. package/dist/chunks/chunk-ZPNJ2HP5.js +0 -71
  422. package/dist/chunks/chunk-ZPNJ2HP5.js.map +0 -1
  423. package/dist/chunks/chunk-ZQXZ6PK7.js +0 -649
  424. package/dist/chunks/chunk-ZQXZ6PK7.js.map +0 -1
  425. package/dist/custom-element-eslint-rules.js +0 -337
  426. package/dist/custom-elements.json +0 -27158
  427. package/dist/loader/index.d.ts +0 -20
  428. package/dist/loader/index.js +0 -310
  429. package/dist/loader/index.js.map +0 -1
  430. package/dist/qti-components/index.cjs +0 -6773
  431. package/dist/qti-components/index.cjs.map +0 -1
  432. package/dist/qti-components/index.d.cts +0 -150
  433. package/dist/qti-item/components/index.d.ts +0 -3
  434. package/dist/qti-item/components/index.js +0 -3856
  435. package/dist/qti-item/components/index.js.map +0 -1
  436. package/dist/qti-item/components/item-container.d.ts +0 -40
  437. package/dist/qti-item/components/item-container.js +0 -3856
  438. package/dist/qti-item/components/item-container.js.map +0 -1
  439. package/dist/qti-item/index.cjs +0 -89
  440. package/dist/qti-item/index.cjs.map +0 -1
  441. package/dist/qti-item/index.d.cts +0 -24
  442. package/dist/qti-item/index.d.ts +0 -4
  443. package/dist/qti-item/index.js +0 -3869
  444. package/dist/qti-item/index.js.map +0 -1
  445. package/dist/qti-item/qti-item.d.ts +0 -25
  446. package/dist/qti-item/qti-item.js +0 -26
  447. package/dist/qti-item/qti-item.js.map +0 -1
  448. package/dist/qti-loader/index.cjs +0 -332
  449. package/dist/qti-loader/index.cjs.map +0 -1
  450. package/dist/qti-loader/index.d.cts +0 -20
  451. package/dist/qti-response-declaration-DAeBp8HH.d.ts +0 -1008
  452. package/dist/qti-response-declaration-ucAqd0qK.d.ts +0 -1034
  453. package/dist/qti-simple-choice-3M44uWiN.d.ts +0 -1153
  454. package/dist/qti-simple-choice-B5GnzbqW.d.ts +0 -1080
  455. package/dist/qti-simple-choice-BOLF9wXz.d.ts +0 -1170
  456. package/dist/qti-simple-choice-BeixIkA0.d.ts +0 -1088
  457. package/dist/qti-simple-choice-BiEjEO6s.d.ts +0 -1152
  458. package/dist/qti-simple-choice-Bo_ikO6H.d.ts +0 -1198
  459. package/dist/qti-simple-choice-C0CcrtK5.d.ts +0 -1169
  460. package/dist/qti-simple-choice-Cgh1-Jbr.d.cts +0 -1185
  461. package/dist/qti-simple-choice-Cgh1-Jbr.d.ts +0 -1185
  462. package/dist/qti-simple-choice-Cn5y-Ta8.d.ts +0 -1158
  463. package/dist/qti-simple-choice-D0GiMrqD.d.ts +0 -1168
  464. package/dist/qti-simple-choice-DxWcdKHi.d.ts +0 -1158
  465. package/dist/qti-simple-choice-R_LxBTp8.d.ts +0 -1158
  466. package/dist/qti-simple-choice-hAIyfF0z.d.ts +0 -1114
  467. package/dist/qti-simple-choice-o4rje1RA.d.ts +0 -1176
  468. package/dist/qti-simple-choice-v2GxpPNh.d.ts +0 -1181
  469. package/dist/qti-test/components/test-component.abstract.d.ts +0 -26
  470. package/dist/qti-test/components/test-component.abstract.js +0 -11
  471. package/dist/qti-test/components/test-next.spec.css +0 -2481
  472. package/dist/qti-test/components/test-next.spec.css.map +0 -1
  473. package/dist/qti-test/components/test-next.spec.d.ts +0 -13
  474. package/dist/qti-test/components/test-next.spec.js +0 -45904
  475. package/dist/qti-test/components/test-next.spec.js.map +0 -1
  476. package/dist/qti-test/context/index.d.ts +0 -6
  477. package/dist/qti-test/context/index.js +0 -9
  478. package/dist/qti-test/context/index.js.map +0 -1
  479. package/dist/qti-test/context/test.context.d.ts +0 -6
  480. package/dist/qti-test/context/test.context.js +0 -9
  481. package/dist/qti-test/context/test.context.js.map +0 -1
  482. package/dist/qti-test/index.cjs +0 -4823
  483. package/dist/qti-test/index.cjs.map +0 -1
  484. package/dist/qti-test/index.d.cts +0 -304
  485. package/dist/qti-test/index.d.ts +0 -14
  486. package/dist/qti-test/index.js +0 -4746
  487. package/dist/qti-test/index.js.map +0 -1
  488. package/dist/qti-test/mixins/index.d.ts +0 -8
  489. package/dist/qti-test/mixins/index.js +0 -350
  490. package/dist/qti-test/mixins/index.js.map +0 -1
  491. package/dist/qti-test/mixins/test-loader.mixin.d.ts +0 -8
  492. package/dist/qti-test/mixins/test-loader.mixin.js +0 -240
  493. package/dist/qti-test/mixins/test-loader.mixin.js.map +0 -1
  494. package/dist/qti-test/mixins/test-navigation.mixin.d.ts +0 -22
  495. package/dist/qti-test/mixins/test-navigation.mixin.js +0 -64
  496. package/dist/qti-test/mixins/test-navigation.mixin.js.map +0 -1
  497. package/dist/qti-test/mixins/test-view.mixin.d.ts +0 -6
  498. package/dist/qti-test/mixins/test-view.mixin.js +0 -50
  499. package/dist/qti-test/mixins/test-view.mixin.js.map +0 -1
  500. package/dist/qti-test/qti-assessment-test/index.d.ts +0 -6
  501. package/dist/qti-test/qti-assessment-test/index.js +0 -221
  502. package/dist/qti-test/qti-assessment-test/index.js.map +0 -1
  503. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.d.ts +0 -6
  504. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js +0 -85
  505. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js.map +0 -1
  506. package/dist/qti-test/qti-assessment-test/qti-assessment-section.d.ts +0 -6
  507. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js +0 -73
  508. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js.map +0 -1
  509. package/dist/qti-test/qti-assessment-test/qti-assessment-test.d.ts +0 -6
  510. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js +0 -54
  511. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js.map +0 -1
  512. package/dist/qti-test/qti-assessment-test/qti-test-part.d.ts +0 -19
  513. package/dist/qti-test/qti-assessment-test/qti-test-part.js +0 -62
  514. package/dist/qti-test/qti-assessment-test/qti-test-part.js.map +0 -1
  515. package/dist/qti-test/qti-test.d.ts +0 -68
  516. package/dist/qti-test/qti-test.js +0 -500
  517. package/dist/qti-test/qti-test.js.map +0 -1
  518. package/dist/qti-test/test-base.d.ts +0 -6
  519. package/dist/qti-test/test-base.js +0 -137
  520. package/dist/qti-test/test-base.js.map +0 -1
  521. package/dist/qti-transformers/index.cjs +0 -316
  522. package/dist/qti-transformers/index.cjs.map +0 -1
  523. package/dist/qti-transformers/index.d.cts +0 -75
  524. package/dist/test-base-BJwG9Ie8.d.ts +0 -109
  525. package/dist/test.context-Bx-606B3.d.ts +0 -99
  526. package/dist/test.context-CB5V4xJz.d.ts +0 -99
  527. package/dist/test.context-CaENAJNk.d.ts +0 -101
  528. package/dist/test.context-CmsDQ8k2.d.ts +0 -99
  529. package/dist/transformers/index.d.ts +0 -76
  530. package/dist/transformers/index.js +0 -293
  531. package/dist/transformers/index.js.map +0 -1
  532. /package/cdn/{chunk-22HAPLRD.js → chunks/chunk-MTNLMWSG.js} +0 -0
  533. /package/dist/{chunk-44VE5POH.js.map → chunks/chunk-CBYNKDSF.js.map} +0 -0
  534. /package/dist/chunks/{chunk-XSI6FXGD.js.map → chunk-OOQLWOYU.js.map} +0 -0
  535. /package/dist/{chunk-MAC76UNI.js.map → exports/computed.context.js.map} +0 -0
  536. /package/dist/{chunks/chunk-HOTNM5DT.js.map → exports/config.context.js.map} +0 -0
  537. /package/dist/{chunks/chunk-UN2IFSGC.js.map → exports/session.context.js.map} +0 -0
  538. /package/dist/{qti-test/components/test-component.abstract.js.map → exports/test.context.js.map} +0 -0
@@ -1,27 +1,27 @@
1
- import {
2
- qtiTransformItem
3
- } from "./chunk-XDMSEAYC.js";
4
1
  import {
5
2
  liveQuery
6
3
  } from "./chunk-D3RGDWKP.js";
7
4
  import {
8
5
  watch
9
6
  } from "./chunk-ELDMXTUQ.js";
10
- import {
11
- Interaction
12
- } from "./chunk-OIRWOI3E.js";
13
- import {
14
- itemContextVariables
15
- } from "./chunk-DLUJN2FW.js";
16
7
  import {
17
8
  QtiConditionExpression
18
- } from "./chunk-XSI6FXGD.js";
9
+ } from "./chunk-OOQLWOYU.js";
19
10
  import {
20
11
  QtiExpression
21
- } from "./chunk-BPHQLJWE.js";
12
+ } from "./chunk-I7HVKMDI.js";
13
+ import {
14
+ qtiTransformItem
15
+ } from "./chunk-XDMSEAYC.js";
16
+ import {
17
+ Interaction
18
+ } from "./chunk-WRHEO7NG.js";
19
+ import {
20
+ itemContextVariables
21
+ } from "./chunk-W7ZXKJ5O.js";
22
22
  import {
23
23
  itemContext
24
- } from "./chunk-KOEILLVS.js";
24
+ } from "./chunk-NJNQOQUU.js";
25
25
  import {
26
26
  __decorateClass
27
27
  } from "./chunk-H2JE6IVU.js";
@@ -243,13 +243,19 @@ var QtiAssessmentItem = class extends LitElement {
243
243
  value: this._context.variables.find((v) => v.identifier === identifier)?.value
244
244
  });
245
245
  }
246
- validate() {
246
+ validate(reportValidity = true) {
247
247
  if (this._interactionElements.every((interactionElement) => interactionElement.validate())) return true;
248
248
  if (this._interactionElements.some((interactionElement) => interactionElement.validate())) return false;
249
+ if (reportValidity) this.reportValidity();
249
250
  return null;
250
251
  }
252
+ reportValidity() {
253
+ for (const interactionElement of this._interactionElements) {
254
+ interactionElement.reportValidity();
255
+ }
256
+ }
251
257
  _getCompletionStatus() {
252
- const valid = this.validate();
258
+ const valid = this.validate(false);
253
259
  if (valid === true) return "completed";
254
260
  if (valid === false) return "incomplete";
255
261
  return "not_attempted";
@@ -677,6 +683,9 @@ QtiAssociableHotspot = __decorateClass([
677
683
  import { html as html7 } from "lit";
678
684
  import { customElement as customElement9, state as state3 } from "lit/decorators.js";
679
685
 
686
+ // src/lib/qti-components/qti-interaction/internal/drag-drop/drag-drop-interaction-mixin.ts
687
+ import { property as property4 } from "lit/decorators.js";
688
+
680
689
  // src/lib/qti-components/qti-interaction/internal/drag-drop/flippables-mixin.ts
681
690
  var FlippablesMixin = (superClass, _droppablesSel, _draggablesSel) => {
682
691
  class FlippablesElement extends superClass {
@@ -744,7 +753,6 @@ var FlippablesMixin = (superClass, _droppablesSel, _draggablesSel) => {
744
753
  };
745
754
 
746
755
  // src/lib/qti-components/qti-interaction/internal/drag-drop/drag-drop-interaction-mixin.ts
747
- import { property as property4 } from "lit/decorators.js";
748
756
  var DragDropInteractionMixin = (superClass, draggablesSelector, droppablesSelector, dragContainersSelector) => {
749
757
  class DragDropInteractionElement extends FlippablesMixin(
750
758
  superClass,
@@ -1078,7 +1086,6 @@ var DragDropInteractionMixin = (superClass, draggablesSelector, droppablesSelect
1078
1086
  }
1079
1087
  const lastElementChild = this.lastElementChild;
1080
1088
  this._internals.setValidity(isValid ? {} : { customError: true }, validityMessage, lastElementChild);
1081
- this.reportValidity();
1082
1089
  return isValid;
1083
1090
  }
1084
1091
  reportValidity() {
@@ -1098,7 +1105,7 @@ var DragDropInteractionMixin = (superClass, draggablesSelector, droppablesSelect
1098
1105
  const maxMatch = this.getMatchMaxValue(droppable);
1099
1106
  const currentAssociations = droppable.querySelectorAll('[qti-draggable="true"]').length;
1100
1107
  const unlimitedAssociations = maxMatch === 0;
1101
- return unlimitedAssociations || currentAssociations >= maxMatch;
1108
+ return !unlimitedAssociations && currentAssociations >= maxMatch;
1102
1109
  }
1103
1110
  dropDraggableInDroppable(draggable, droppable) {
1104
1111
  const cleanClone = draggable.cloneNode(true);
@@ -1143,12 +1150,18 @@ var DragDropInteractionMixin = (superClass, draggablesSelector, droppablesSelect
1143
1150
  this.deactivateDroppables();
1144
1151
  }
1145
1152
  checkAllMaxAssociations() {
1153
+ const currentAssociations = this.getValidAssociations();
1154
+ const maxAssociationsInterationReached = this.maxAssociations !== 0 && currentAssociations >= this.maxAssociations;
1146
1155
  this.droppables.forEach((d) => {
1147
- const maxAssociationsReached = this.checkMaxAssociations(d);
1148
- if (maxAssociationsReached) {
1156
+ if (maxAssociationsInterationReached) {
1149
1157
  this.disableDroppable(d);
1150
1158
  } else {
1151
- this.enableDroppable(d);
1159
+ const maxAssociationsReached = this.checkMaxAssociations(d);
1160
+ if (maxAssociationsReached) {
1161
+ this.disableDroppable(d);
1162
+ } else {
1163
+ this.enableDroppable(d);
1164
+ }
1152
1165
  }
1153
1166
  });
1154
1167
  }
@@ -1190,7 +1203,11 @@ var DragDropInteractionMixin = (superClass, draggablesSelector, droppablesSelect
1190
1203
  });
1191
1204
  }
1192
1205
  getValidAssociations() {
1193
- return this.droppables.filter((d) => d.childElementCount > 0).length;
1206
+ let count = 0;
1207
+ for (const droppable of this.droppables) {
1208
+ count = count + this.getDraggablesFromDroppable(droppable).length;
1209
+ }
1210
+ return count;
1194
1211
  }
1195
1212
  saveResponse() {
1196
1213
  const response = this.collectResponseData();
@@ -1373,13 +1390,6 @@ var DragDropInteractionMixin = (superClass, draggablesSelector, droppablesSelect
1373
1390
  e.preventDefault();
1374
1391
  this.dragClone.setAttribute("dragging", "");
1375
1392
  }
1376
- findParentInteractionElement(element) {
1377
- let parent = element.parentElement;
1378
- while (parent && !parent.tagName?.toLowerCase().endsWith("-interaction")) {
1379
- parent = parent.parentElement;
1380
- }
1381
- return parent;
1382
- }
1383
1393
  findDraggableInDraggableContainer(identifier) {
1384
1394
  const allDragContainers = this.dragContainers.flat();
1385
1395
  for (const container of allDragContainers) {
@@ -1590,10 +1600,10 @@ var ChoicesMixin = (superClass, selector) => {
1590
1600
  let validityMessage = "";
1591
1601
  if (this.maxChoices !== 0 && selectedCount > this.maxChoices) {
1592
1602
  isValid = false;
1593
- validityMessage = this.dataset.maxSelectionsMessage || `You can select at most ${this.maxChoices} choices.`;
1603
+ validityMessage = this.dataset.maxSelectionsMessage || `Please select no more than ${this.maxChoices} ${this.maxChoices === 1 ? "option" : "options"}.`;
1594
1604
  } else if (selectedCount < this.minChoices) {
1595
1605
  isValid = false;
1596
- validityMessage = this.dataset.minSelectionsMessage || `You must select at least ${this.minChoices} choices.`;
1606
+ validityMessage = `Please select at least ${this.minChoices} ${this.minChoices === 1 ? "option" : "options"}.`;
1597
1607
  }
1598
1608
  if (selectedChoices.length > 0) {
1599
1609
  this._internals.setValidity(
@@ -1602,7 +1612,6 @@ var ChoicesMixin = (superClass, selector) => {
1602
1612
  selectedChoices[selectedCount - 1] || this._choiceElements[0] || this
1603
1613
  );
1604
1614
  }
1605
- this.reportValidity();
1606
1615
  return isValid;
1607
1616
  }
1608
1617
  reportValidity() {
@@ -2571,17 +2580,26 @@ function positionHotspots(shape, coordsNumber, img, hotspot) {
2571
2580
  hotspot.style.height = bottomYPer - topYPer + "%";
2572
2581
  }
2573
2582
  break;
2583
+ case "ellipse":
2584
+ {
2585
+ const [centerX, centerY, radiusX, radiusY] = coordsNumber;
2586
+ const centerXPer = centerX / img.width * 100;
2587
+ const centerYPer = centerY / img.height * 100;
2588
+ const radiusXPer = radiusX / img.width * 100;
2589
+ const radiusYPer = radiusY / img.height * 100;
2590
+ hotspot.style.left = centerXPer - radiusXPer + "%";
2591
+ hotspot.style.top = centerYPer - radiusYPer + "%";
2592
+ hotspot.style.width = 2 * radiusXPer + "%";
2593
+ hotspot.style.height = 2 * radiusYPer + "%";
2594
+ hotspot.style.borderRadius = `50%`;
2595
+ }
2596
+ break;
2574
2597
  case "poly":
2575
2598
  {
2576
- const polycoords = coordsNumber.reduce((acc, currentValue, currentIndex, polyC) => {
2577
- if (currentIndex % 2 === 1) {
2578
- const lastVal = acc.pop();
2579
- acc[acc.length] = { x: lastVal, y: polyC[currentIndex] };
2580
- } else {
2581
- acc.push(currentValue);
2582
- }
2583
- return acc;
2584
- }, []);
2599
+ const polycoords = [];
2600
+ for (let i = 0; i < coordsNumber.length; i += 2) {
2601
+ polycoords.push({ x: coordsNumber[i], y: coordsNumber[i + 1] });
2602
+ }
2585
2603
  const leftX = Math.min(...polycoords.map((point) => point.x));
2586
2604
  const rightX = Math.max(...polycoords.map((point) => point.x));
2587
2605
  const topY = Math.min(...polycoords.map((point) => point.y));
@@ -2590,19 +2608,20 @@ function positionHotspots(shape, coordsNumber, img, hotspot) {
2590
2608
  const topYPer = topY / img.height * 100;
2591
2609
  const rightXPer = rightX / img.width * 100;
2592
2610
  const bottomYPer = bottomY / img.height * 100;
2593
- hotspot.style.left = leftX / img.width * 100 + "%";
2594
- hotspot.style.top = topY / img.height * 100 + "%";
2611
+ hotspot.style.left = leftXPer + "%";
2612
+ hotspot.style.top = topYPer + "%";
2595
2613
  hotspot.style.width = rightXPer - leftXPer + "%";
2596
2614
  hotspot.style.height = bottomYPer - topYPer + "%";
2597
2615
  const polygonData = polycoords.map((point) => ({
2598
2616
  x: (point.x - leftX) / (rightX - leftX) * 100,
2599
2617
  y: (point.y - topY) / (bottomY - topY) * 100
2600
2618
  }));
2601
- const polyD = polygonData.map((p) => Math.round(p.x) + "% " + Math.round(p.y) + "%").join(",");
2619
+ const polyD = polygonData.map((p) => `${p.x}% ${p.y}%`).join(",");
2602
2620
  hotspot.style.clipPath = `polygon(${polyD})`;
2603
2621
  }
2604
2622
  break;
2605
2623
  default:
2624
+ console.error(`Unsupported shape: ${shape}`);
2606
2625
  break;
2607
2626
  }
2608
2627
  }
@@ -3236,11 +3255,6 @@ QtiInlineChoice = __decorateClass([
3236
3255
  customElement26("qti-inline-choice")
3237
3256
  ], QtiInlineChoice);
3238
3257
 
3239
- // src/lib/qti-components/qti-interaction/qti-match-interaction/qti-match-interaction.ts
3240
- import { html as html25, nothing } from "lit";
3241
- import { customElement as customElement28, property as property20, state as state8 } from "lit/decorators.js";
3242
- import { unsafeHTML as unsafeHTML2 } from "lit/directives/unsafe-html.js";
3243
-
3244
3258
  // src/lib/qti-components/qti-interaction/qti-simple-associable-choice.ts
3245
3259
  import { css as css20, html as html24, LitElement as LitElement14 } from "lit";
3246
3260
  import { customElement as customElement27, property as property19 } from "lit/decorators.js";
@@ -3305,6 +3319,11 @@ QtiSimpleAssociableChoice = __decorateClass([
3305
3319
  customElement27("qti-simple-associable-choice")
3306
3320
  ], QtiSimpleAssociableChoice);
3307
3321
 
3322
+ // src/lib/qti-components/qti-interaction/qti-match-interaction/qti-match-interaction.ts
3323
+ import { html as html25, nothing } from "lit";
3324
+ import { customElement as customElement28, property as property20, state as state8 } from "lit/decorators.js";
3325
+ import { unsafeHTML as unsafeHTML2 } from "lit/directives/unsafe-html.js";
3326
+
3308
3327
  // src/lib/qti-components/qti-interaction/qti-match-interaction/qti-match-interaction.styles.ts
3309
3328
  import { css as css21 } from "lit";
3310
3329
  var qti_match_interaction_styles_default = css21`
@@ -3445,7 +3464,7 @@ var QtiMatchInteraction = class extends DragDropInteractionMixin(
3445
3464
  const selectedInRowCount = this.value.filter((v) => v.split(" ")[0] === rowId).length || 0;
3446
3465
  const checked = this.value.includes(value);
3447
3466
  const part = `rb ${checked ? "rb-checked" : ""} ${this.correctOptions.includes(value) ? "rb-correct" : ""}`;
3448
- const disable = this.correctOptions.length > 0 ? true : row.matchMax === 1 ? false : selectedInRowCount >= row.matchMax && !checked;
3467
+ const disable = this.correctOptions.length > 0 ? true : row.matchMax === 1 ? false : row.matchMax !== 0 && selectedInRowCount >= row.matchMax && !checked;
3449
3468
  return html25`<td>
3450
3469
  <input
3451
3470
  type=${row.matchMax === 1 ? "radio" : `checkbox`}
@@ -3735,11 +3754,10 @@ var QtiPortableCustomInteraction = class extends Interaction {
3735
3754
  startChecking() {
3736
3755
  this.intervalId = setInterval(() => {
3737
3756
  const response = this.pci.getResponse();
3738
- const newResponse = this.pci.getResponse();
3739
3757
  const stringified = JSON.stringify(response);
3740
3758
  if (stringified !== this.rawResponse) {
3741
3759
  this.rawResponse = stringified;
3742
- const value = this.convertQtiVariableJSON(newResponse);
3760
+ const value = this.convertQtiVariableJSON(response);
3743
3761
  this.value = value;
3744
3762
  this.saveResponse(value);
3745
3763
  }
@@ -3758,77 +3776,71 @@ var QtiPortableCustomInteraction = class extends Interaction {
3758
3776
  get value() {
3759
3777
  return this.rawResponse;
3760
3778
  }
3761
- getTAOConfig(node) {
3762
- const a = node.querySelectorAll("properties");
3763
- let config = {};
3764
- const getPropertyValue = (el) => {
3765
- const property38 = {};
3766
- const key = el.getAttribute("key");
3767
- if (key) {
3768
- const children = Array.from(el.children);
3769
- const allKey = children.map((c) => c.getAttribute("key"));
3770
- const isArray = allKey.length > 0 && !allKey.find((k) => !Number.isInteger(+k));
3771
- if (isArray) {
3772
- property38[key] = children.map((c) => getChildProperties(c));
3773
- } else {
3774
- property38[key] = el.textContent;
3775
- }
3776
- }
3777
- return property38;
3778
- };
3779
- const getChildProperties = (el) => {
3780
- if (el) {
3781
- let properties = {};
3782
- for (const child of el.children) {
3783
- properties = { ...properties, ...getPropertyValue(child) };
3784
- }
3785
- return properties;
3786
- }
3787
- };
3788
- for (const properties of a) {
3789
- const key = properties.getAttribute("key");
3790
- if (!key) {
3791
- config = { ...config, ...getChildProperties(properties) };
3792
- }
3793
- return config;
3794
- }
3795
- console.log("Can not find qti-custom-interaction config");
3796
- return null;
3797
- }
3798
3779
  register(pci) {
3799
3780
  this.pci = pci;
3800
- const type = this.parentElement.tagName === "QTI-CUSTOM-INTERACTION" ? "TAO" : "IMS";
3801
- const dom = type == "IMS" ? this.querySelector("qti-interaction-markup") : this.querySelector("markup");
3781
+ const dom = this.querySelector("qti-interaction-markup");
3802
3782
  dom.classList.add("qti-customInteraction");
3803
- if (type == "TAO" && this.querySelector("properties")) {
3783
+ if (this.querySelector("properties")) {
3804
3784
  this.querySelector("properties").style.display = "none";
3805
3785
  }
3806
- const config = type == "IMS" ? {
3786
+ const config = {
3807
3787
  properties: this.dataset,
3808
3788
  onready: () => {
3809
3789
  console.log("onready");
3810
3790
  }
3811
- } : this.getTAOConfig(this);
3812
- if (type == "IMS") {
3791
+ };
3792
+ if (pci.getInstance)
3813
3793
  pci.getInstance(dom, config, void 0);
3814
- } else {
3815
- pci.initialize(this.customInteractionTypeIdentifier, dom.firstElementChild, config);
3816
- }
3817
- if (type == "TAO") {
3818
- const links = Array.from(this.querySelectorAll("link")).map((acc) => acc.getAttribute("href"));
3819
- links.forEach((link) => {
3820
- const styles = document.createElement("link");
3821
- styles.rel = "stylesheet";
3822
- styles.type = "text/css";
3823
- styles.media = "screen";
3824
- styles.href = link;
3825
- dom.appendChild(styles);
3826
- });
3794
+ else {
3795
+ const restoreTAOConfig = (element) => {
3796
+ const config2 = {};
3797
+ const parseDataAttributes = (element2) => {
3798
+ const result = {};
3799
+ Object.entries(element2.dataset).forEach(([key, value]) => {
3800
+ if (!key.includes("__")) {
3801
+ result[key] = value;
3802
+ }
3803
+ });
3804
+ const nestedData = {};
3805
+ Object.entries(element2.dataset).forEach(([key, value]) => {
3806
+ const parts = key.split("__");
3807
+ if (parts.length > 1) {
3808
+ const [group, index, prop] = parts;
3809
+ nestedData[group] = nestedData[group] || {};
3810
+ nestedData[group][index] = nestedData[group][index] || {};
3811
+ nestedData[group][index][prop] = value;
3812
+ }
3813
+ });
3814
+ Object.entries(nestedData).forEach(([key, group]) => {
3815
+ result[key] = Object.values(group);
3816
+ });
3817
+ return result;
3818
+ };
3819
+ const data = parseDataAttributes(element);
3820
+ for (const key in data) {
3821
+ if (Object.prototype.hasOwnProperty.call(data, key)) {
3822
+ const value = data[key];
3823
+ if (key === "config") {
3824
+ config2[key] = JSON.parse(value);
3825
+ } else {
3826
+ config2[key] = value;
3827
+ }
3828
+ }
3829
+ }
3830
+ return config2;
3831
+ };
3832
+ const taoConfig = restoreTAOConfig(this);
3833
+ pci.initialize(
3834
+ this.customInteractionTypeIdentifier,
3835
+ dom.firstElementChild,
3836
+ Object.keys(taoConfig).length ? taoConfig : null
3837
+ );
3827
3838
  }
3828
3839
  this.startChecking();
3829
3840
  }
3830
3841
  connectedCallback() {
3831
3842
  super.connectedCallback();
3843
+ console.log("connectedCallback");
3832
3844
  define("qtiCustomInteractionContext", () => {
3833
3845
  return {
3834
3846
  register: (ctxA) => {
@@ -3840,8 +3852,22 @@ var QtiPortableCustomInteraction = class extends Interaction {
3840
3852
  });
3841
3853
  const config = this.buildRequireConfig();
3842
3854
  const requirePCI = requirejs.config(config);
3855
+ requirejs.onError = function(err) {
3856
+ console.error("RequireJS error:", err);
3857
+ if (err.requireType === "timeout") {
3858
+ console.error("Modules that timed out:", err.requireModules);
3859
+ }
3860
+ throw err;
3861
+ };
3843
3862
  requirePCI(["require"], (require2) => {
3844
- require2([this.module]);
3863
+ try {
3864
+ require2([this.module], () => {
3865
+ }, (err) => {
3866
+ console.error("Error loading module:", err);
3867
+ });
3868
+ } catch (error) {
3869
+ console.error("Error in require call:", error);
3870
+ }
3845
3871
  });
3846
3872
  }
3847
3873
  disconnectedCallback() {
@@ -3885,7 +3911,7 @@ var QtiPortableCustomInteraction = class extends Interaction {
3885
3911
  combineRequireResolvePaths(path1, path2) {
3886
3912
  const path1Array = Array.isArray(path1) ? path1 : [path1];
3887
3913
  const path2Array = Array.isArray(path2) ? path2 : [path2];
3888
- return path1Array.concat(path2Array);
3914
+ return path1Array.concat(path2Array).filter((value, index, self) => self.indexOf(value) === index);
3889
3915
  }
3890
3916
  removeDoubleSlashes(str) {
3891
3917
  const singleForwardSlashes = str.replace(/([^:]\/)\/+/g, "$1").replace(/\/\//g, "/").replace("http:/", "http://").replace("https:/", "https://");
@@ -4004,7 +4030,7 @@ var QtiSelectPointInteraction = class extends Interaction {
4004
4030
  this._imgElement = null;
4005
4031
  // Extracted click handler method
4006
4032
  this._onImageClick = (event) => {
4007
- if (this._points.length < this.maxChoices) {
4033
+ if (this.maxChoices === 0 || this._points.length < this.maxChoices) {
4008
4034
  const x = event.offsetX;
4009
4035
  const y = event.offsetY;
4010
4036
  this._points = [...this._points, `${x} ${y}`];
@@ -5285,8 +5311,8 @@ import { property as property31 } from "lit/decorators.js";
5285
5311
  var QtiMapResponse = class extends QtiExpression {
5286
5312
  getResult() {
5287
5313
  const response = this.context.variables.find((r) => r.identifier === this.identifier);
5288
- if (!response) {
5289
- console.warn(`Response ${this.identifier} can not be found`);
5314
+ if (!response || !response.mapping) {
5315
+ console.error(`Response ${this.identifier} can not be found`);
5290
5316
  return null;
5291
5317
  }
5292
5318
  const mapping = response.mapping;
@@ -6085,4 +6111,4 @@ export {
6085
6111
  QtiOutcomeDeclaration,
6086
6112
  QtiResponseDeclaration
6087
6113
  };
6088
- //# sourceMappingURL=chunk-E4TWZ2DL.js.map
6114
+ //# sourceMappingURL=chunk-NPHDN2TQ.js.map