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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (536) hide show
  1. package/cdn/chunks/chunk-3AHQU35T.js +1 -0
  2. package/cdn/chunks/chunk-4AGTWY6I.js +1 -0
  3. package/cdn/{chunk-A536ZOJJ.js → chunks/chunk-6EIGTAJQ.js} +2 -4
  4. package/cdn/chunks/chunk-6UEXCXHG.js +17 -0
  5. package/cdn/chunks/chunk-BJL2ZC5L.js +1 -0
  6. package/cdn/chunks/chunk-FB3WTNRH.js +8 -0
  7. package/cdn/chunks/chunk-GCKESRQG.js +1 -0
  8. package/{dist/chunks/chunk-NZQKGIJP.js → cdn/chunks/chunk-GVU44M3E.js} +6 -8
  9. package/cdn/chunks/{chunk-T2KKTMAT.js → chunk-I3HQJPKA.js} +84 -84
  10. package/cdn/chunks/chunk-IKDNYCM7.js +1 -0
  11. package/cdn/chunks/chunk-KDO3T66B.js +1 -0
  12. package/cdn/chunks/chunk-KGVJXME7.js +934 -0
  13. package/cdn/chunks/chunk-KQPTKMFJ.js +1 -0
  14. package/cdn/chunks/{chunk-4ILXLVT5.js → chunk-LCKLXCUP.js} +6 -18
  15. package/cdn/chunks/chunk-M5PPZ5M3.js +59 -0
  16. package/cdn/chunks/chunk-O5MMIBRR.js +10 -0
  17. package/cdn/chunks/chunk-OEXGDZO2.js +8 -0
  18. package/cdn/chunks/{chunk-RXKI3AO4.js → chunk-R45JL2ZY.js} +1 -1
  19. package/cdn/chunks/chunk-W2VSEYLY.js +8 -0
  20. package/cdn/chunks/chunk-WYDU2FBY.js +8 -0
  21. package/cdn/chunks/chunk-X7T7HK65.js +8 -0
  22. package/cdn/chunks/{chunk-X2KBNXRO.js → chunk-YIYKK4RV.js} +1 -1
  23. package/cdn/exports/computed.context.js +1 -0
  24. package/cdn/exports/config.context.js +1 -0
  25. package/cdn/exports/qti-assessment-item.context.js +1 -1
  26. package/cdn/exports/qti-condition-expression.js +1 -1
  27. package/cdn/exports/qti-expression.js +1 -1
  28. package/cdn/exports/session.context.js +1 -0
  29. package/cdn/exports/test.context.js +1 -0
  30. package/cdn/index.global.js +1 -1
  31. package/cdn/index.js +1 -1
  32. package/cdn/qti-components/index.js +1 -1
  33. package/cdn/qti-item/core/index.js +1 -1
  34. package/cdn/qti-test/components/index.js +1 -1
  35. package/cdn/qti-test/components/test-container.js +1 -3549
  36. package/cdn/qti-test/components/test-end-attempt.js +1 -1
  37. package/cdn/qti-test/components/test-item-link.js +1 -1
  38. package/cdn/qti-test/components/test-navigation.js +1 -0
  39. package/cdn/qti-test/components/test-next.js +1 -1
  40. package/cdn/qti-test/components/test-paging-buttons-stamp.js +1 -1
  41. package/cdn/qti-test/components/test-prev.js +1 -1
  42. package/cdn/qti-test/components/test-show-correct-response.js +1 -1
  43. package/cdn/qti-test/components/test-view.js +1 -1
  44. package/cdn/qti-test/core/index.js +1 -1
  45. package/dist/chunks/chunk-3A4IOMBQ.js +8 -0
  46. package/dist/chunks/chunk-3A4IOMBQ.js.map +1 -0
  47. package/dist/{chunk-2CHF3TMY.js → chunks/chunk-6MW3J6OM.js} +112 -4
  48. package/dist/chunks/chunk-6MW3J6OM.js.map +1 -0
  49. package/dist/chunks/chunk-CBYNKDSF.js +1 -0
  50. package/dist/chunks/{chunk-WWN5AD6V.js → chunk-CHINL5UJ.js} +12 -7
  51. package/dist/chunks/chunk-CHINL5UJ.js.map +1 -0
  52. package/dist/chunks/{chunk-W4272Q5U.js → chunk-CWCYTL3F.js} +18 -8
  53. package/dist/chunks/chunk-CWCYTL3F.js.map +1 -0
  54. package/dist/chunks/{chunk-GQ5P3NWC.js → chunk-FZVLLSCM.js} +18 -8
  55. package/dist/chunks/chunk-FZVLLSCM.js.map +1 -0
  56. package/dist/chunks/chunk-GNCPECOC.js +45 -0
  57. package/dist/chunks/chunk-GNCPECOC.js.map +1 -0
  58. package/dist/chunks/{chunk-YOXF6JPS.js → chunk-GRYVMG5Q.js} +135 -193
  59. package/dist/chunks/chunk-GRYVMG5Q.js.map +1 -0
  60. package/dist/chunks/{chunk-BPHQLJWE.js → chunk-I7HVKMDI.js} +2 -2
  61. package/dist/chunks/chunk-I7HVKMDI.js.map +1 -0
  62. package/dist/chunks/chunk-J4MM4JXS.js +8 -0
  63. package/dist/chunks/chunk-J4MM4JXS.js.map +1 -0
  64. package/dist/chunks/{chunk-FV7HWK54.js → chunk-JUAS2TVR.js} +1 -1
  65. package/dist/chunks/chunk-JUAS2TVR.js.map +1 -0
  66. package/dist/chunks/chunk-K6EUKFNW.js +43 -0
  67. package/dist/chunks/chunk-K6EUKFNW.js.map +1 -0
  68. package/dist/chunks/chunk-LZ7UIV5O.js +91 -0
  69. package/dist/chunks/chunk-LZ7UIV5O.js.map +1 -0
  70. package/dist/chunks/{chunk-J2SHENRN.js → chunk-MDWBTFKL.js} +100 -5
  71. package/dist/chunks/chunk-MDWBTFKL.js.map +1 -0
  72. package/dist/chunks/{chunk-KOEILLVS.js → chunk-NJNQOQUU.js} +1 -1
  73. package/dist/chunks/chunk-NJNQOQUU.js.map +1 -0
  74. package/dist/chunks/{chunk-E4TWZ2DL.js → chunk-NPHDN2TQ.js} +139 -113
  75. package/dist/chunks/chunk-NPHDN2TQ.js.map +1 -0
  76. package/dist/chunks/chunk-ODLYMQOS.js +8 -0
  77. package/dist/chunks/chunk-ODLYMQOS.js.map +1 -0
  78. package/dist/chunks/{chunk-XSI6FXGD.js → chunk-OOQLWOYU.js} +2 -2
  79. package/dist/chunks/{chunk-NHA53UTY.js → chunk-PR6AZWRP.js} +3 -6
  80. package/dist/chunks/chunk-PR6AZWRP.js.map +1 -0
  81. package/dist/chunks/chunk-QAA6MWGE.js +170 -0
  82. package/dist/chunks/chunk-QAA6MWGE.js.map +1 -0
  83. package/dist/chunks/chunk-QTH3WLGY.js +8 -0
  84. package/dist/chunks/chunk-QTH3WLGY.js.map +1 -0
  85. package/dist/chunks/{chunk-DLUJN2FW.js → chunk-W7ZXKJ5O.js} +1 -1
  86. package/dist/chunks/chunk-W7ZXKJ5O.js.map +1 -0
  87. package/dist/chunks/{chunk-OIRWOI3E.js → chunk-WRHEO7NG.js} +1 -1
  88. package/dist/chunks/chunk-WRHEO7NG.js.map +1 -0
  89. package/dist/chunks/chunk-WXART76T.js +95 -0
  90. package/dist/chunks/chunk-WXART76T.js.map +1 -0
  91. package/dist/exports/computed.context.d.ts +30 -0
  92. package/dist/exports/computed.context.js +8 -0
  93. package/dist/exports/config.context.d.ts +8 -0
  94. package/dist/exports/config.context.js +8 -0
  95. package/dist/exports/interaction.js +1 -1
  96. package/dist/exports/item.context.d.ts +2 -2
  97. package/dist/exports/item.context.js +1 -1
  98. package/dist/exports/qti-assessment-item.context.js +1 -1
  99. package/dist/exports/qti-condition-expression.js +3 -3
  100. package/dist/exports/qti-expression.js +2 -2
  101. package/dist/exports/session.context.d.ts +12 -0
  102. package/dist/exports/session.context.js +8 -0
  103. package/dist/exports/test.context.d.ts +16 -0
  104. package/dist/exports/test.context.js +8 -0
  105. package/dist/index.d.ts +9 -4
  106. package/dist/index.js +58 -55
  107. package/dist/qti-components/index.d.ts +2 -2
  108. package/dist/qti-components/index.js +7 -7
  109. package/dist/qti-components-jsx.d.ts +124 -98
  110. package/dist/qti-item/core/index.js +2 -3
  111. package/dist/qti-loader/index.d.ts +1 -1
  112. package/dist/qti-loader/index.js +1 -1
  113. package/dist/{qti-response-declaration-Di9CsqiJ.d.ts → qti-response-declaration-CyOeVboh.d.ts} +2 -2
  114. package/dist/qti-test/components/index.d.ts +10 -4
  115. package/dist/qti-test/components/index.js +28 -19
  116. package/dist/qti-test/components/test-container.d.ts +3 -1
  117. package/dist/qti-test/components/test-container.js +6 -3778
  118. package/dist/qti-test/components/test-container.js.map +1 -1
  119. package/dist/qti-test/components/test-end-attempt.d.ts +4 -11
  120. package/dist/qti-test/components/test-end-attempt.js +3 -5
  121. package/dist/qti-test/components/test-item-link.d.ts +2 -11
  122. package/dist/qti-test/components/test-item-link.js +1 -5
  123. package/dist/qti-test/components/test-navigation.d.ts +35 -0
  124. package/dist/qti-test/components/test-navigation.js +12 -0
  125. package/dist/qti-test/components/test-navigation.js.map +1 -0
  126. package/dist/qti-test/components/test-next.d.ts +12 -12
  127. package/dist/qti-test/components/test-next.js +4 -4
  128. package/dist/qti-test/components/test-paging-buttons-stamp.d.ts +8 -15
  129. package/dist/qti-test/components/test-paging-buttons-stamp.js +2 -5
  130. package/dist/qti-test/components/test-prev.d.ts +11 -12
  131. package/dist/qti-test/components/test-prev.js +4 -4
  132. package/dist/qti-test/components/test-show-correct-response.d.ts +4 -11
  133. package/dist/qti-test/components/test-show-correct-response.js +3 -5
  134. package/dist/qti-test/components/test-view.d.ts +3 -12
  135. package/dist/qti-test/components/test-view.js +2 -4
  136. package/dist/qti-test/core/index.d.ts +18 -48
  137. package/dist/qti-test/core/index.js +7 -12
  138. package/dist/{test.context-C2LBA3w4.d.ts → qti-test-part-zX9tOUbA.d.ts} +17 -33
  139. package/dist/vscode.html-custom-data.json +39 -36
  140. package/package.json +20 -19
  141. package/cdn/chunk-4DFVJE2A.js +0 -48
  142. package/cdn/chunk-4I75QSIL.js +0 -8
  143. package/cdn/chunk-5WCOPF7O.js +0 -73
  144. package/cdn/chunk-66PERJA3.js +0 -939
  145. package/cdn/chunk-6WNSQ7U6.js +0 -939
  146. package/cdn/chunk-AT2C24P4.js +0 -8
  147. package/cdn/chunk-BLKKKK6C.js +0 -11
  148. package/cdn/chunk-DC2R556M.js +0 -5
  149. package/cdn/chunk-GALSGMIP.js +0 -5
  150. package/cdn/chunk-IXSX4SJX.js +0 -1
  151. package/cdn/chunk-KYOTSBCX.js +0 -1
  152. package/cdn/chunk-L4TDHAKL.js +0 -24
  153. package/cdn/chunk-LVW3MHTI.js +0 -23
  154. package/cdn/chunk-M6AATWPS.js +0 -59
  155. package/cdn/chunk-MFWSHIPH.js +0 -17
  156. package/cdn/chunk-QGKK4T2J.js +0 -8
  157. package/cdn/chunk-ROXN2HIJ.js +0 -8
  158. package/cdn/chunk-SQDSHH6N.js +0 -3539
  159. package/cdn/chunk-TJMODUN5.js +0 -8
  160. package/cdn/chunk-VI2WKTN4.js +0 -1
  161. package/cdn/chunk-Z6SKK5ZX.js +0 -8
  162. package/cdn/chunks/chunk-3GO57DNP.js +0 -0
  163. package/cdn/chunks/chunk-3V6LA7B3.js +0 -8
  164. package/cdn/chunks/chunk-4PEUIMDK.js +0 -8
  165. package/cdn/chunks/chunk-4WXQYE2P.js +0 -8
  166. package/cdn/chunks/chunk-5P7CTN7Q.js +0 -11
  167. package/cdn/chunks/chunk-5X76K77R.js +0 -8
  168. package/cdn/chunks/chunk-6MCYE7P5.js +0 -1
  169. package/cdn/chunks/chunk-6PW2L463.js +0 -0
  170. package/cdn/chunks/chunk-6S4CDN3T.js +0 -43
  171. package/cdn/chunks/chunk-76VGZJCP.js +0 -934
  172. package/cdn/chunks/chunk-7XYBFL7U.js +0 -934
  173. package/cdn/chunks/chunk-AJJJAZWM.js +0 -1
  174. package/cdn/chunks/chunk-ARHBUT6F.js +0 -5
  175. package/cdn/chunks/chunk-AUHO2E7V.js +0 -934
  176. package/cdn/chunks/chunk-CZ3CSGCE.js +0 -934
  177. package/cdn/chunks/chunk-D3GR6AUG.js +0 -43
  178. package/cdn/chunks/chunk-DZCKF45D.js +0 -5
  179. package/cdn/chunks/chunk-EFU4L43Q.js +0 -8
  180. package/cdn/chunks/chunk-FM5C34DM.js +0 -934
  181. package/cdn/chunks/chunk-FRS2J3OS.js +0 -59
  182. package/cdn/chunks/chunk-GMK2YRB2.js +0 -934
  183. package/cdn/chunks/chunk-H2V2RXUW.js +0 -11
  184. package/cdn/chunks/chunk-HUMOYGEM.js +0 -43
  185. package/cdn/chunks/chunk-IMJOPCFR.js +0 -1
  186. package/cdn/chunks/chunk-IQZ7AOCQ.js +0 -8
  187. package/cdn/chunks/chunk-J3JSSCM6.js +0 -5
  188. package/cdn/chunks/chunk-KHLUVO6Y.js +0 -8
  189. package/cdn/chunks/chunk-LARBLB7K.js +0 -8
  190. package/cdn/chunks/chunk-LNFCEHB3.js +0 -934
  191. package/cdn/chunks/chunk-MJMONWKB.js +0 -3539
  192. package/cdn/chunks/chunk-N5OHGRGG.js +0 -8
  193. package/cdn/chunks/chunk-NDHSIO2G.js +0 -8
  194. package/cdn/chunks/chunk-NRY3WHJD.js +0 -5
  195. package/cdn/chunks/chunk-PKT2SJQD.js +0 -8
  196. package/cdn/chunks/chunk-PPWEIKLT.js +0 -1
  197. package/cdn/chunks/chunk-PT523RSK.js +0 -8
  198. package/cdn/chunks/chunk-QD3NT5PG.js +0 -934
  199. package/cdn/chunks/chunk-QTK4CPHP.js +0 -8
  200. package/cdn/chunks/chunk-QV6I5NVQ.js +0 -8
  201. package/cdn/chunks/chunk-R33OODNX.js +0 -1
  202. package/cdn/chunks/chunk-RIXTWE2H.js +0 -8
  203. package/cdn/chunks/chunk-ROZIP5LG.js +0 -8
  204. package/cdn/chunks/chunk-RPZVSBLM.js +0 -8
  205. package/cdn/chunks/chunk-SXM25YH3.js +0 -934
  206. package/cdn/chunks/chunk-TEYXRLTI.js +0 -8
  207. package/cdn/chunks/chunk-TQBDBMWL.js +0 -5
  208. package/cdn/chunks/chunk-TV3SPOLH.js +0 -8
  209. package/cdn/chunks/chunk-TVDTF6P6.js +0 -934
  210. package/cdn/chunks/chunk-U2TE6TOV.js +0 -934
  211. package/cdn/chunks/chunk-W5Y3ZU2W.js +0 -5
  212. package/cdn/chunks/chunk-WPGJ54IP.js +0 -1
  213. package/cdn/chunks/chunk-YHWMZAZD.js +0 -43
  214. package/cdn/chunks/chunk-YVZ742ID.js +0 -934
  215. package/cdn/chunks/chunk-YWH4TGMA.js +0 -5
  216. package/cdn/chunks/chunk-YXR6KSZI.js +0 -11
  217. package/cdn/qti-components/index.global.js +0 -226
  218. package/cdn/qti-item/components/index.global.js +0 -149
  219. package/cdn/qti-item/components/index.js +0 -3549
  220. package/cdn/qti-item/components/item-container.global.js +0 -149
  221. package/cdn/qti-item/components/item-container.js +0 -3549
  222. package/cdn/qti-item/core/index.global.js +0 -149
  223. package/cdn/qti-item/index.global.js +0 -149
  224. package/cdn/qti-item/index.js +0 -3549
  225. package/cdn/qti-item/qti-item.global.js +0 -114
  226. package/cdn/qti-item/qti-item.js +0 -1
  227. package/cdn/qti-loader/index.global.js +0 -1
  228. package/cdn/qti-test/components/index.global.js +0 -207
  229. package/cdn/qti-test/components/styles.global.js +0 -44
  230. package/cdn/qti-test/components/test-component.abstract.global.js +0 -170
  231. package/cdn/qti-test/components/test-component.abstract.js +0 -1
  232. package/cdn/qti-test/components/test-container.global.js +0 -149
  233. package/cdn/qti-test/components/test-item-link.global.js +0 -170
  234. package/cdn/qti-test/components/test-next.global.js +0 -170
  235. package/cdn/qti-test/components/test-next.spec.css +0 -1
  236. package/cdn/qti-test/components/test-next.spec.global.js +0 -64
  237. package/cdn/qti-test/components/test-next.spec.js +0 -713
  238. package/cdn/qti-test/components/test-paging-buttons-stamp.global.js +0 -207
  239. package/cdn/qti-test/components/test-prev.global.js +0 -170
  240. package/cdn/qti-test/components/test-view.global.js +0 -170
  241. package/cdn/qti-test/context/index.global.js +0 -58
  242. package/cdn/qti-test/context/index.js +0 -1
  243. package/cdn/qti-test/context/test.context.global.js +0 -58
  244. package/cdn/qti-test/context/test.context.js +0 -1
  245. package/cdn/qti-test/core/index.global.js +0 -205
  246. package/cdn/qti-test/index.global.js +0 -242
  247. package/cdn/qti-test/index.js +0 -3598
  248. package/cdn/qti-test/mixins/index.global.js +0 -1
  249. package/cdn/qti-test/mixins/index.js +0 -23
  250. package/cdn/qti-test/mixins/test-loader.mixin.global.js +0 -1
  251. package/cdn/qti-test/mixins/test-loader.mixin.js +0 -23
  252. package/cdn/qti-test/mixins/test-navigation.mixin.global.js +0 -1
  253. package/cdn/qti-test/mixins/test-navigation.mixin.js +0 -1
  254. package/cdn/qti-test/mixins/test-view.mixin.global.js +0 -1
  255. package/cdn/qti-test/mixins/test-view.mixin.js +0 -1
  256. package/cdn/qti-test/qti-assessment-test/index.global.js +0 -170
  257. package/cdn/qti-test/qti-assessment-test/index.js +0 -1
  258. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.global.js +0 -170
  259. package/cdn/qti-test/qti-assessment-test/qti-assessment-item-ref.js +0 -1
  260. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.global.js +0 -170
  261. package/cdn/qti-test/qti-assessment-test/qti-assessment-section.js +0 -1
  262. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.global.js +0 -170
  263. package/cdn/qti-test/qti-assessment-test/qti-assessment-test.js +0 -1
  264. package/cdn/qti-test/qti-assessment-test/qti-test-part.global.js +0 -114
  265. package/cdn/qti-test/qti-assessment-test/qti-test-part.js +0 -1
  266. package/cdn/qti-test/qti-test.global.js +0 -170
  267. package/cdn/qti-test/qti-test.js +0 -23
  268. package/cdn/qti-test/test-base.global.js +0 -170
  269. package/cdn/qti-test/test-base.js +0 -1
  270. package/cdn/qti-transformers/index.global.js +0 -1
  271. package/dist/chunk-2CHF3TMY.js.map +0 -1
  272. package/dist/chunk-2LWLX7WV.js +0 -6307
  273. package/dist/chunk-2LWLX7WV.js.map +0 -1
  274. package/dist/chunk-2OA7E3E7.js +0 -294
  275. package/dist/chunk-2OA7E3E7.js.map +0 -1
  276. package/dist/chunk-3G364JZC.js +0 -72
  277. package/dist/chunk-3G364JZC.js.map +0 -1
  278. package/dist/chunk-44VE5POH.js +0 -55
  279. package/dist/chunk-4YG2FPKK.js +0 -31
  280. package/dist/chunk-4YG2FPKK.js.map +0 -1
  281. package/dist/chunk-6TUE644E.js +0 -569
  282. package/dist/chunk-6TUE644E.js.map +0 -1
  283. package/dist/chunk-6ZMD232X.js +0 -78
  284. package/dist/chunk-6ZMD232X.js.map +0 -1
  285. package/dist/chunk-AYRSHIHA.js +0 -50
  286. package/dist/chunk-AYRSHIHA.js.map +0 -1
  287. package/dist/chunk-BN32D5J2.js +0 -43
  288. package/dist/chunk-BN32D5J2.js.map +0 -1
  289. package/dist/chunk-CJRXRBRQ.js +0 -50
  290. package/dist/chunk-CJRXRBRQ.js.map +0 -1
  291. package/dist/chunk-GPJ6WTE5.js +0 -118
  292. package/dist/chunk-GPJ6WTE5.js.map +0 -1
  293. package/dist/chunk-KAUHKHPH.js +0 -50
  294. package/dist/chunk-KAUHKHPH.js.map +0 -1
  295. package/dist/chunk-MAC76UNI.js +0 -1
  296. package/dist/chunk-QYN5S4EM.js +0 -107
  297. package/dist/chunk-QYN5S4EM.js.map +0 -1
  298. package/dist/chunk-UB5K44DB.js +0 -30
  299. package/dist/chunk-UB5K44DB.js.map +0 -1
  300. package/dist/chunk-UJTJIU3C.js +0 -43
  301. package/dist/chunk-UJTJIU3C.js.map +0 -1
  302. package/dist/chunk-XVQZ5JI5.js +0 -50
  303. package/dist/chunk-XVQZ5JI5.js.map +0 -1
  304. package/dist/chunk-XW3PQRKW.js +0 -6306
  305. package/dist/chunk-XW3PQRKW.js.map +0 -1
  306. package/dist/chunk-YQ7EXOAK.js +0 -10
  307. package/dist/chunk-YQ7EXOAK.js.map +0 -1
  308. package/dist/chunks/chunk-2V6LQV2K.js +0 -50
  309. package/dist/chunks/chunk-2V6LQV2K.js.map +0 -1
  310. package/dist/chunks/chunk-3EU75IUF.js +0 -118
  311. package/dist/chunks/chunk-3EU75IUF.js.map +0 -1
  312. package/dist/chunks/chunk-3QQFMVDS.js +0 -118
  313. package/dist/chunks/chunk-3QQFMVDS.js.map +0 -1
  314. package/dist/chunks/chunk-4GNVYCBN.js +0 -627
  315. package/dist/chunks/chunk-4GNVYCBN.js.map +0 -1
  316. package/dist/chunks/chunk-4MQV5IRV.js +0 -59
  317. package/dist/chunks/chunk-4MQV5IRV.js.map +0 -1
  318. package/dist/chunks/chunk-4WVLWWYJ.js +0 -50
  319. package/dist/chunks/chunk-4WVLWWYJ.js.map +0 -1
  320. package/dist/chunks/chunk-5KVGRLYT.js +0 -10
  321. package/dist/chunks/chunk-5KVGRLYT.js.map +0 -1
  322. package/dist/chunks/chunk-5PCD2B62.js +0 -6091
  323. package/dist/chunks/chunk-5PCD2B62.js.map +0 -1
  324. package/dist/chunks/chunk-5RTLOB3Q.js +0 -59
  325. package/dist/chunks/chunk-5RTLOB3Q.js.map +0 -1
  326. package/dist/chunks/chunk-6JXR63MH.js +0 -50
  327. package/dist/chunks/chunk-6JXR63MH.js.map +0 -1
  328. package/dist/chunks/chunk-6PAEJQSQ.js +0 -6058
  329. package/dist/chunks/chunk-6PAEJQSQ.js.map +0 -1
  330. package/dist/chunks/chunk-6QT4LIPL.js +0 -623
  331. package/dist/chunks/chunk-6QT4LIPL.js.map +0 -1
  332. package/dist/chunks/chunk-7QMCKYDR.js +0 -43
  333. package/dist/chunks/chunk-7QMCKYDR.js.map +0 -1
  334. package/dist/chunks/chunk-A24F75DB.js +0 -72
  335. package/dist/chunks/chunk-A24F75DB.js.map +0 -1
  336. package/dist/chunks/chunk-AUWATZ65.js +0 -10
  337. package/dist/chunks/chunk-AUWATZ65.js.map +0 -1
  338. package/dist/chunks/chunk-AXTEKPP5.js +0 -6084
  339. package/dist/chunks/chunk-AXTEKPP5.js.map +0 -1
  340. package/dist/chunks/chunk-B6MJCAOF.js +0 -6063
  341. package/dist/chunks/chunk-B6MJCAOF.js.map +0 -1
  342. package/dist/chunks/chunk-BJ2JLJIJ.js +0 -623
  343. package/dist/chunks/chunk-BJ2JLJIJ.js.map +0 -1
  344. package/dist/chunks/chunk-BPHQLJWE.js.map +0 -1
  345. package/dist/chunks/chunk-CD3E4M5Y.js +0 -107
  346. package/dist/chunks/chunk-CD3E4M5Y.js.map +0 -1
  347. package/dist/chunks/chunk-CEXAR7BF.js +0 -52
  348. package/dist/chunks/chunk-CEXAR7BF.js.map +0 -1
  349. package/dist/chunks/chunk-CWYAQA25.js +0 -6067
  350. package/dist/chunks/chunk-CWYAQA25.js.map +0 -1
  351. package/dist/chunks/chunk-D3QX5N57.js +0 -6117
  352. package/dist/chunks/chunk-D3QX5N57.js.map +0 -1
  353. package/dist/chunks/chunk-DLUJN2FW.js.map +0 -1
  354. package/dist/chunks/chunk-DNHDFXTV.js +0 -59
  355. package/dist/chunks/chunk-DNHDFXTV.js.map +0 -1
  356. package/dist/chunks/chunk-E4TWZ2DL.js.map +0 -1
  357. package/dist/chunks/chunk-FV7HWK54.js.map +0 -1
  358. package/dist/chunks/chunk-GQ5P3NWC.js.map +0 -1
  359. package/dist/chunks/chunk-GSWZT6N2.js +0 -50
  360. package/dist/chunks/chunk-GSWZT6N2.js.map +0 -1
  361. package/dist/chunks/chunk-HHVRU3AJ.js +0 -107
  362. package/dist/chunks/chunk-HHVRU3AJ.js.map +0 -1
  363. package/dist/chunks/chunk-HOTNM5DT.js +0 -1
  364. package/dist/chunks/chunk-IWG66KQQ.js +0 -107
  365. package/dist/chunks/chunk-IWG66KQQ.js.map +0 -1
  366. package/dist/chunks/chunk-J2SHENRN.js.map +0 -1
  367. package/dist/chunks/chunk-K6ATVWMP.js +0 -6091
  368. package/dist/chunks/chunk-K6ATVWMP.js.map +0 -1
  369. package/dist/chunks/chunk-KOEILLVS.js.map +0 -1
  370. package/dist/chunks/chunk-KYAIMBP5.js +0 -78
  371. package/dist/chunks/chunk-KYAIMBP5.js.map +0 -1
  372. package/dist/chunks/chunk-LNISKMIL.js +0 -6063
  373. package/dist/chunks/chunk-LNISKMIL.js.map +0 -1
  374. package/dist/chunks/chunk-LNKJEW5E.js +0 -627
  375. package/dist/chunks/chunk-LNKJEW5E.js.map +0 -1
  376. package/dist/chunks/chunk-LXJA3VP2.js +0 -72
  377. package/dist/chunks/chunk-LXJA3VP2.js.map +0 -1
  378. package/dist/chunks/chunk-MLT7V47R.js +0 -100
  379. package/dist/chunks/chunk-MLT7V47R.js.map +0 -1
  380. package/dist/chunks/chunk-N5FPZNMX.js +0 -43
  381. package/dist/chunks/chunk-N5FPZNMX.js.map +0 -1
  382. package/dist/chunks/chunk-NHA53UTY.js.map +0 -1
  383. package/dist/chunks/chunk-NZQKGIJP.js.map +0 -1
  384. package/dist/chunks/chunk-O6WEZVEM.js +0 -43
  385. package/dist/chunks/chunk-O6WEZVEM.js.map +0 -1
  386. package/dist/chunks/chunk-OIRWOI3E.js.map +0 -1
  387. package/dist/chunks/chunk-PWOY6REC.js +0 -6064
  388. package/dist/chunks/chunk-PWOY6REC.js.map +0 -1
  389. package/dist/chunks/chunk-QJELKGWM.js +0 -6061
  390. package/dist/chunks/chunk-QJELKGWM.js.map +0 -1
  391. package/dist/chunks/chunk-QUB54PXZ.js +0 -50
  392. package/dist/chunks/chunk-QUB54PXZ.js.map +0 -1
  393. package/dist/chunks/chunk-RX3BRYYI.js +0 -59
  394. package/dist/chunks/chunk-RX3BRYYI.js.map +0 -1
  395. package/dist/chunks/chunk-UEEMM6H2.js +0 -6090
  396. package/dist/chunks/chunk-UEEMM6H2.js.map +0 -1
  397. package/dist/chunks/chunk-UFYWCLXF.js +0 -10
  398. package/dist/chunks/chunk-UFYWCLXF.js.map +0 -1
  399. package/dist/chunks/chunk-UN2IFSGC.js +0 -1
  400. package/dist/chunks/chunk-VAPB5TN4.js +0 -46
  401. package/dist/chunks/chunk-VAPB5TN4.js.map +0 -1
  402. package/dist/chunks/chunk-VBF3GCZK.js +0 -50
  403. package/dist/chunks/chunk-VBF3GCZK.js.map +0 -1
  404. package/dist/chunks/chunk-W4272Q5U.js.map +0 -1
  405. package/dist/chunks/chunk-WWN5AD6V.js.map +0 -1
  406. package/dist/chunks/chunk-X226BX2U.js +0 -78
  407. package/dist/chunks/chunk-X226BX2U.js.map +0 -1
  408. package/dist/chunks/chunk-XCHS3RTZ.js +0 -107
  409. package/dist/chunks/chunk-XCHS3RTZ.js.map +0 -1
  410. package/dist/chunks/chunk-YFC3BVN2.js +0 -78
  411. package/dist/chunks/chunk-YFC3BVN2.js.map +0 -1
  412. package/dist/chunks/chunk-YOXF6JPS.js.map +0 -1
  413. package/dist/chunks/chunk-YQB6YLNW.js +0 -78
  414. package/dist/chunks/chunk-YQB6YLNW.js.map +0 -1
  415. package/dist/chunks/chunk-Z5THRO6Z.js +0 -46
  416. package/dist/chunks/chunk-Z5THRO6Z.js.map +0 -1
  417. package/dist/chunks/chunk-ZHAJ3CMP.js +0 -6091
  418. package/dist/chunks/chunk-ZHAJ3CMP.js.map +0 -1
  419. package/dist/chunks/chunk-ZPNJ2HP5.js +0 -71
  420. package/dist/chunks/chunk-ZPNJ2HP5.js.map +0 -1
  421. package/dist/chunks/chunk-ZQXZ6PK7.js +0 -649
  422. package/dist/chunks/chunk-ZQXZ6PK7.js.map +0 -1
  423. package/dist/custom-element-eslint-rules.js +0 -337
  424. package/dist/custom-elements.json +0 -27158
  425. package/dist/loader/index.d.ts +0 -20
  426. package/dist/loader/index.js +0 -310
  427. package/dist/loader/index.js.map +0 -1
  428. package/dist/qti-components/index.cjs +0 -6773
  429. package/dist/qti-components/index.cjs.map +0 -1
  430. package/dist/qti-components/index.d.cts +0 -150
  431. package/dist/qti-item/components/index.d.ts +0 -3
  432. package/dist/qti-item/components/index.js +0 -3856
  433. package/dist/qti-item/components/index.js.map +0 -1
  434. package/dist/qti-item/components/item-container.d.ts +0 -40
  435. package/dist/qti-item/components/item-container.js +0 -3856
  436. package/dist/qti-item/components/item-container.js.map +0 -1
  437. package/dist/qti-item/index.cjs +0 -89
  438. package/dist/qti-item/index.cjs.map +0 -1
  439. package/dist/qti-item/index.d.cts +0 -24
  440. package/dist/qti-item/index.d.ts +0 -4
  441. package/dist/qti-item/index.js +0 -3869
  442. package/dist/qti-item/index.js.map +0 -1
  443. package/dist/qti-item/qti-item.d.ts +0 -25
  444. package/dist/qti-item/qti-item.js +0 -26
  445. package/dist/qti-item/qti-item.js.map +0 -1
  446. package/dist/qti-loader/index.cjs +0 -332
  447. package/dist/qti-loader/index.cjs.map +0 -1
  448. package/dist/qti-loader/index.d.cts +0 -20
  449. package/dist/qti-response-declaration-DAeBp8HH.d.ts +0 -1008
  450. package/dist/qti-response-declaration-ucAqd0qK.d.ts +0 -1034
  451. package/dist/qti-simple-choice-3M44uWiN.d.ts +0 -1153
  452. package/dist/qti-simple-choice-B5GnzbqW.d.ts +0 -1080
  453. package/dist/qti-simple-choice-BOLF9wXz.d.ts +0 -1170
  454. package/dist/qti-simple-choice-BeixIkA0.d.ts +0 -1088
  455. package/dist/qti-simple-choice-BiEjEO6s.d.ts +0 -1152
  456. package/dist/qti-simple-choice-Bo_ikO6H.d.ts +0 -1198
  457. package/dist/qti-simple-choice-C0CcrtK5.d.ts +0 -1169
  458. package/dist/qti-simple-choice-Cgh1-Jbr.d.cts +0 -1185
  459. package/dist/qti-simple-choice-Cgh1-Jbr.d.ts +0 -1185
  460. package/dist/qti-simple-choice-Cn5y-Ta8.d.ts +0 -1158
  461. package/dist/qti-simple-choice-D0GiMrqD.d.ts +0 -1168
  462. package/dist/qti-simple-choice-DxWcdKHi.d.ts +0 -1158
  463. package/dist/qti-simple-choice-R_LxBTp8.d.ts +0 -1158
  464. package/dist/qti-simple-choice-hAIyfF0z.d.ts +0 -1114
  465. package/dist/qti-simple-choice-o4rje1RA.d.ts +0 -1176
  466. package/dist/qti-simple-choice-v2GxpPNh.d.ts +0 -1181
  467. package/dist/qti-test/components/test-component.abstract.d.ts +0 -26
  468. package/dist/qti-test/components/test-component.abstract.js +0 -11
  469. package/dist/qti-test/components/test-next.spec.css +0 -2481
  470. package/dist/qti-test/components/test-next.spec.css.map +0 -1
  471. package/dist/qti-test/components/test-next.spec.d.ts +0 -13
  472. package/dist/qti-test/components/test-next.spec.js +0 -45904
  473. package/dist/qti-test/components/test-next.spec.js.map +0 -1
  474. package/dist/qti-test/context/index.d.ts +0 -6
  475. package/dist/qti-test/context/index.js +0 -9
  476. package/dist/qti-test/context/index.js.map +0 -1
  477. package/dist/qti-test/context/test.context.d.ts +0 -6
  478. package/dist/qti-test/context/test.context.js +0 -9
  479. package/dist/qti-test/context/test.context.js.map +0 -1
  480. package/dist/qti-test/index.cjs +0 -4823
  481. package/dist/qti-test/index.cjs.map +0 -1
  482. package/dist/qti-test/index.d.cts +0 -304
  483. package/dist/qti-test/index.d.ts +0 -14
  484. package/dist/qti-test/index.js +0 -4746
  485. package/dist/qti-test/index.js.map +0 -1
  486. package/dist/qti-test/mixins/index.d.ts +0 -8
  487. package/dist/qti-test/mixins/index.js +0 -350
  488. package/dist/qti-test/mixins/index.js.map +0 -1
  489. package/dist/qti-test/mixins/test-loader.mixin.d.ts +0 -8
  490. package/dist/qti-test/mixins/test-loader.mixin.js +0 -240
  491. package/dist/qti-test/mixins/test-loader.mixin.js.map +0 -1
  492. package/dist/qti-test/mixins/test-navigation.mixin.d.ts +0 -22
  493. package/dist/qti-test/mixins/test-navigation.mixin.js +0 -64
  494. package/dist/qti-test/mixins/test-navigation.mixin.js.map +0 -1
  495. package/dist/qti-test/mixins/test-view.mixin.d.ts +0 -6
  496. package/dist/qti-test/mixins/test-view.mixin.js +0 -50
  497. package/dist/qti-test/mixins/test-view.mixin.js.map +0 -1
  498. package/dist/qti-test/qti-assessment-test/index.d.ts +0 -6
  499. package/dist/qti-test/qti-assessment-test/index.js +0 -221
  500. package/dist/qti-test/qti-assessment-test/index.js.map +0 -1
  501. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.d.ts +0 -6
  502. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js +0 -85
  503. package/dist/qti-test/qti-assessment-test/qti-assessment-item-ref.js.map +0 -1
  504. package/dist/qti-test/qti-assessment-test/qti-assessment-section.d.ts +0 -6
  505. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js +0 -73
  506. package/dist/qti-test/qti-assessment-test/qti-assessment-section.js.map +0 -1
  507. package/dist/qti-test/qti-assessment-test/qti-assessment-test.d.ts +0 -6
  508. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js +0 -54
  509. package/dist/qti-test/qti-assessment-test/qti-assessment-test.js.map +0 -1
  510. package/dist/qti-test/qti-assessment-test/qti-test-part.d.ts +0 -19
  511. package/dist/qti-test/qti-assessment-test/qti-test-part.js +0 -62
  512. package/dist/qti-test/qti-assessment-test/qti-test-part.js.map +0 -1
  513. package/dist/qti-test/qti-test.d.ts +0 -68
  514. package/dist/qti-test/qti-test.js +0 -500
  515. package/dist/qti-test/qti-test.js.map +0 -1
  516. package/dist/qti-test/test-base.d.ts +0 -6
  517. package/dist/qti-test/test-base.js +0 -137
  518. package/dist/qti-test/test-base.js.map +0 -1
  519. package/dist/qti-transformers/index.cjs +0 -316
  520. package/dist/qti-transformers/index.cjs.map +0 -1
  521. package/dist/qti-transformers/index.d.cts +0 -75
  522. package/dist/test-base-BJwG9Ie8.d.ts +0 -109
  523. package/dist/test.context-Bx-606B3.d.ts +0 -99
  524. package/dist/test.context-CB5V4xJz.d.ts +0 -99
  525. package/dist/test.context-CaENAJNk.d.ts +0 -101
  526. package/dist/test.context-CmsDQ8k2.d.ts +0 -99
  527. package/dist/transformers/index.d.ts +0 -76
  528. package/dist/transformers/index.js +0 -293
  529. package/dist/transformers/index.js.map +0 -1
  530. /package/cdn/{chunk-22HAPLRD.js → chunks/chunk-MTNLMWSG.js} +0 -0
  531. /package/dist/{chunk-44VE5POH.js.map → chunks/chunk-CBYNKDSF.js.map} +0 -0
  532. /package/dist/chunks/{chunk-XSI6FXGD.js.map → chunk-OOQLWOYU.js.map} +0 -0
  533. /package/dist/{chunk-MAC76UNI.js.map → exports/computed.context.js.map} +0 -0
  534. /package/dist/{chunks/chunk-HOTNM5DT.js.map → exports/config.context.js.map} +0 -0
  535. /package/dist/{chunks/chunk-UN2IFSGC.js.map → exports/session.context.js.map} +0 -0
  536. /package/dist/{qti-test/components/test-component.abstract.js.map → exports/test.context.js.map} +0 -0
@@ -1,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