@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,4 +1,4 @@
1
- import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}from"./chunk-5BR5CJFH.js";import{a as Nt}from"./chunk-5FCXUJAG.js";import{a as Ue}from"./chunk-EHK76KRT.js";import{a as w}from"./chunk-XUJ7TXHW.js";import{a as E}from"./chunk-UJP4TGD3.js";import{a as Vt}from"./chunk-KWPDTFYH.js";import{a as H}from"./chunk-RXKI3AO4.js";import{a as q}from"./chunk-X2KBNXRO.js";import{a as m,b as d,c as C,d as Ye,e as Ht}from"./chunk-5GCSZ3CH.js";import{a as g,d as u,e as at,f as ne,g as R,i as v}from"./chunk-LZZB4VGC.js";import{a as L}from"./chunk-QQCGUVEV.js";import{a as Dt,b as D}from"./chunk-FRS2J3OS.js";import{a as n}from"./chunk-IAP2CEE7.js";var S=class extends v{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent=null;this._handleDisabledChange=(e,t)=>{this._interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this._interactionElements.forEach(r=>r.readonly=t);this._context={identifier:this.getAttribute("identifier"),variables:Vt};this._initialContext={...this._context,variables:this._context.variables};this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context={...this._context,variables:[...this._context.variables,e.detail.variable]},this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let t=e.detail;this._feedbackElements.push(t),(Number(this._context.variables.find(o=>o.identifier==="numAttempts")?.value)||0)>0&&t.checkShowFeedback(t.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.detail.interactionElement)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:t,countAttempt:r}=e.detail;this.validate(),this.updateResponseVariable(t,"true"),this.processResponse(r)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:t,value:r}=e.detail;this.updateOutcomeVariable(t,r),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>({identifier:e.identifier,value:e.value,type:e.type,...e.type==="outcome"&&e.identifier==="SCORE"?{externalScored:e.externalScored}:{}}))}set variables(e){if(!Array.isArray(e)||e.some(t=>!("identifier"in t))){console.warn("variables property should be an array of VariableDeclaration");return}this._context={...this._context,variables:this._context.variables.map(t=>{let r=e.find(o=>o.identifier===t.identifier);return r?{...t,...r}:t})},this._context.variables.forEach(t=>{if(t.type==="response"){let r=this._interactionElements.find(o=>o.responseIdentifier===t.identifier);r&&(r.value=t.value)}})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let t of e){this.getResponse(t.responseIdentifier)&&this.updateResponseVariable(t.responseIdentifier,t.response);let o=this._interactionElements.find(a=>a.getAttribute("response-identifier")===t.responseIdentifier);o&&(o.value=t.response)}}render(){return u`<slot></slot>`}showCorrectResponse(e){let t=this._context.variables.filter(r=>"correctResponse"in r&&r.correctResponse).map(r=>({responseIdentifier:r.identifier,response:r.correctResponse||""}));for(let{responseIdentifier:r,response:o}of t){let a=this._interactionElements.find(i=>i.getAttribute("response-identifier")===r);a&&(a.correctResponse=e?o:"")}}processResponse(e=!0){this.validate();let t=this.querySelector("qti-response-processing");return!t||!t.process?!1:(t.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+this._context.variables.find(r=>r.identifier==="numAttempts")?.value+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(t=>t.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:t,response:r}=e.detail;this.updateResponseVariable(t,r)}updateResponseVariable(e,t){this._context={...this._context,variables:this._context.variables.map(r=>r.identifier!==e?r:{...r,value:t})},this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(t)?[...t]:t}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,t){let r=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context={...this._context,variables:this._context.variables.map(o=>o.identifier!==e?o:{...o,value:r.cardinality==="single"?t:[...o.value,t]})},this._feedbackElements.forEach(o=>o.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:this._context.variables.find(o=>o.identifier===e)?.value})}validate(){return this._interactionElements.every(e=>e.validate())?!0:this._interactionElements.some(e=>e.validate())?!1:null}_getCompletionStatus(){let e=this.validate();return e===!0?"completed":e===!1?"incomplete":"not_attempted"}_emit(e,t=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}};n([d({type:String})],S.prototype,"title",2),n([d({type:String})],S.prototype,"identifier",2),n([d({type:String})],S.prototype,"adaptive",2),n([d({type:String})],S.prototype,"timeDependent",2),n([d({type:Boolean})],S.prototype,"disabled",2),n([w("disabled",{waitUntilFirstUpdate:!0})],S.prototype,"_handleDisabledChange",2),n([d({type:Boolean})],S.prototype,"readonly",2),n([w("readonly",{waitUntilFirstUpdate:!0})],S.prototype,"_handleReadonlyChange",2),n([Dt({context:L})],S.prototype,"_context",2),S=n([m("qti-assessment-item")],S);var pe=class extends v{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0,composed:!0});if(this.dispatchEvent(e)){let o=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);o?await this.updateStimulusRef(o):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async updateStimulusRef(e){let t=await Nt().load(this.href).then(r=>r.htmlDoc());if(t){let r=t.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.innerHTML="",e.append(...r)}}};n([d({type:String})],pe.prototype,"identifier",2),n([d({type:String})],pe.prototype,"href",2),pe=n([m("qti-assessment-stimulus-ref")],pe);var Xe=class extends v{};Xe=n([m("qti-companion-materials-info")],Xe);var xe=class extends v{render(){return u`<slot @slotchange=${this.handleSlotChange}></slot>`}handleSlotChange(){let s=Array.from(this.firstElementChild?.childNodes??[]).find(e=>e.nodeType===Node.COMMENT_NODE);try{this.operatorFunction=new Function("context","fn","item",s?.textContent??"")}catch(e){console.error("custom-operator contains invalid javascript code",e)}}calculate(){let s={variable:t=>this._context?.variables.find(r=>r.identifier===t)?.value??"",correct:t=>this._context?.variables.find(r=>r.identifier===t)?.correctResponse??""},e={getVariable:t=>this._context?.variables.find(r=>r.identifier===t),updateOutcomeVariable:(t,r)=>{this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:t,value:r}}))},updateResponseVariable:(t,r)=>{this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:t,response:r}}))}};return this.operatorFunction(this._context,s,e)}};n([D({context:L,subscribe:!0}),C()],xe.prototype,"_context",2),xe=n([m("qti-custom-operator")],xe);var dr=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),Ee=c=>{if(typeof c=="string")return c;let s=dr();return s==="."?c.toLocaleString():c.toString().replace(".","").replace(s,".")};function lt(c){return c==null}function Ce(c){return c.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}var _=class extends v{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(s){let e=this._context.variables.find(r=>r.identifier===s)||null;if(this.outcomeIdentifier!==s||!e)return;let t=!1;Array.isArray(e.value)?t=e.value.includes(this.identifier):t=!lt(this.identifier)&&!lt(e?.value)&&this.identifier===e.value||!1,this.showFeedback(t)}showFeedback(s){this.showStatus=s&&this.showHide==="show"||!s&&this.showHide==="hide"?"on":"off"}};n([d({type:String,attribute:"show-hide"})],_.prototype,"showHide",2),n([d({type:String,attribute:"outcome-identifier"})],_.prototype,"outcomeIdentifier",2),n([d({type:String})],_.prototype,"identifier",2),n([d({type:String,attribute:!1})],_.prototype,"showStatus",2),n([D({context:L,subscribe:!0}),C()],_.prototype,"_context",2);var qe=class extends _{render(){return u` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}firstUpdated(s){this.checkShowFeedback(this.outcomeIdentifier)}};qe.styles=g`
1
+ import{a as ae,b as K,c as le,e as ce,f as J,g as Nt,h as Ot,i as Be,j as It}from"./chunk-5BR5CJFH.js";import{a as Ue}from"./chunk-EHK76KRT.js";import{a as w}from"./chunk-XUJ7TXHW.js";import{a as H}from"./chunk-R45JL2ZY.js";import{a as q}from"./chunk-YIYKK4RV.js";import{a as $t}from"./chunk-5FCXUJAG.js";import{a as E}from"./chunk-UJP4TGD3.js";import{a as m,b as d,c as C,d as Ye,e as Ht}from"./chunk-5GCSZ3CH.js";import{a as b,d as h,e as at,f as ne,g as R,i as v}from"./chunk-LZZB4VGC.js";import{a as Vt}from"./chunk-KWPDTFYH.js";import{a as L}from"./chunk-QQCGUVEV.js";import{a as Dt,b as D}from"./chunk-M5PPZ5M3.js";import{a as n}from"./chunk-IAP2CEE7.js";var S=class extends v{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent=null;this._handleDisabledChange=(e,t)=>{this._interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this._interactionElements.forEach(r=>r.readonly=t);this._context={identifier:this.getAttribute("identifier"),variables:Vt};this._initialContext={...this._context,variables:this._context.variables};this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context={...this._context,variables:[...this._context.variables,e.detail.variable]},this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let t=e.detail;this._feedbackElements.push(t),(Number(this._context.variables.find(s=>s.identifier==="numAttempts")?.value)||0)>0&&t.checkShowFeedback(t.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.detail.interactionElement)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:t,countAttempt:r}=e.detail;this.validate(),this.updateResponseVariable(t,"true"),this.processResponse(r)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:t,value:r}=e.detail;this.updateOutcomeVariable(t,r),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>({identifier:e.identifier,value:e.value,type:e.type,...e.type==="outcome"&&e.identifier==="SCORE"?{externalScored:e.externalScored}:{}}))}set variables(e){if(!Array.isArray(e)||e.some(t=>!("identifier"in t))){console.warn("variables property should be an array of VariableDeclaration");return}this._context={...this._context,variables:this._context.variables.map(t=>{let r=e.find(s=>s.identifier===t.identifier);return r?{...t,...r}:t})},this._context.variables.forEach(t=>{if(t.type==="response"){let r=this._interactionElements.find(s=>s.responseIdentifier===t.identifier);r&&(r.value=t.value)}})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let t of e){this.getResponse(t.responseIdentifier)&&this.updateResponseVariable(t.responseIdentifier,t.response);let s=this._interactionElements.find(a=>a.getAttribute("response-identifier")===t.responseIdentifier);s&&(s.value=t.response)}}render(){return h`<slot></slot>`}showCorrectResponse(e){let t=this._context.variables.filter(r=>"correctResponse"in r&&r.correctResponse).map(r=>({responseIdentifier:r.identifier,response:r.correctResponse||""}));for(let{responseIdentifier:r,response:s}of t){let a=this._interactionElements.find(o=>o.getAttribute("response-identifier")===r);a&&(a.correctResponse=e?s:"")}}processResponse(e=!0){this.validate();let t=this.querySelector("qti-response-processing");return!t||!t.process?!1:(t.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+this._context.variables.find(r=>r.identifier==="numAttempts")?.value+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(t=>t.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:t,response:r}=e.detail;this.updateResponseVariable(t,r)}updateResponseVariable(e,t){this._context={...this._context,variables:this._context.variables.map(r=>r.identifier!==e?r:{...r,value:t})},this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(t)?[...t]:t}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,t){let r=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context={...this._context,variables:this._context.variables.map(s=>s.identifier!==e?s:{...s,value:r.cardinality==="single"?t:[...s.value,t]})},this._feedbackElements.forEach(s=>s.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:this._context.variables.find(s=>s.identifier===e)?.value})}validate(e=!0){return this._interactionElements.every(t=>t.validate())?!0:this._interactionElements.some(t=>t.validate())?!1:(e&&this.reportValidity(),null)}reportValidity(){for(let e of this._interactionElements)e.reportValidity()}_getCompletionStatus(){let e=this.validate(!1);return e===!0?"completed":e===!1?"incomplete":"not_attempted"}_emit(e,t=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}};n([d({type:String})],S.prototype,"title",2),n([d({type:String})],S.prototype,"identifier",2),n([d({type:String})],S.prototype,"adaptive",2),n([d({type:String})],S.prototype,"timeDependent",2),n([d({type:Boolean})],S.prototype,"disabled",2),n([w("disabled",{waitUntilFirstUpdate:!0})],S.prototype,"_handleDisabledChange",2),n([d({type:Boolean})],S.prototype,"readonly",2),n([w("readonly",{waitUntilFirstUpdate:!0})],S.prototype,"_handleReadonlyChange",2),n([Dt({context:L})],S.prototype,"_context",2),S=n([m("qti-assessment-item")],S);var pe=class extends v{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0,composed:!0});if(this.dispatchEvent(e)){let s=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);s?await this.updateStimulusRef(s):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async updateStimulusRef(e){let t=await $t().load(this.href).then(r=>r.htmlDoc());if(t){let r=t.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.innerHTML="",e.append(...r)}}};n([d({type:String})],pe.prototype,"identifier",2),n([d({type:String})],pe.prototype,"href",2),pe=n([m("qti-assessment-stimulus-ref")],pe);var Xe=class extends v{};Xe=n([m("qti-companion-materials-info")],Xe);var xe=class extends v{render(){return h`<slot @slotchange=${this.handleSlotChange}></slot>`}handleSlotChange(){let i=Array.from(this.firstElementChild?.childNodes??[]).find(e=>e.nodeType===Node.COMMENT_NODE);try{this.operatorFunction=new Function("context","fn","item",i?.textContent??"")}catch(e){console.error("custom-operator contains invalid javascript code",e)}}calculate(){let i={variable:t=>this._context?.variables.find(r=>r.identifier===t)?.value??"",correct:t=>this._context?.variables.find(r=>r.identifier===t)?.correctResponse??""},e={getVariable:t=>this._context?.variables.find(r=>r.identifier===t),updateOutcomeVariable:(t,r)=>{this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:t,value:r}}))},updateResponseVariable:(t,r)=>{this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:t,response:r}}))}};return this.operatorFunction(this._context,i,e)}};n([D({context:L,subscribe:!0}),C()],xe.prototype,"_context",2),xe=n([m("qti-custom-operator")],xe);var dr=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),Ee=c=>{if(typeof c=="string")return c;let i=dr();return i==="."?c.toLocaleString():c.toString().replace(".","").replace(i,".")};function lt(c){return c==null}function Ce(c){return c.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}var _=class extends v{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(i){let e=this._context.variables.find(r=>r.identifier===i)||null;if(this.outcomeIdentifier!==i||!e)return;let t=!1;Array.isArray(e.value)?t=e.value.includes(this.identifier):t=!lt(this.identifier)&&!lt(e?.value)&&this.identifier===e.value||!1,this.showFeedback(t)}showFeedback(i){this.showStatus=i&&this.showHide==="show"||!i&&this.showHide==="hide"?"on":"off"}};n([d({type:String,attribute:"show-hide"})],_.prototype,"showHide",2),n([d({type:String,attribute:"outcome-identifier"})],_.prototype,"outcomeIdentifier",2),n([d({type:String})],_.prototype,"identifier",2),n([d({type:String,attribute:!1})],_.prototype,"showStatus",2),n([D({context:L,subscribe:!0}),C()],_.prototype,"_context",2);var qe=class extends _{render(){return h` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}firstUpdated(i){this.checkShowFeedback(this.outcomeIdentifier)}};qe.styles=b`
2
2
  :host {
3
3
  display: block;
4
4
  }
@@ -8,21 +8,21 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
8
8
  .off {
9
9
  display: none;
10
10
  }
11
- `,qe=n([m("qti-feedback-block")],qe);var Te=class extends _{constructor(){super(...arguments);this.render=()=>u` <slot part="feedback" class="${this.showStatus}"></slot> `}};Te.styles=g`
11
+ `,qe=n([m("qti-feedback-block")],qe);var Te=class extends _{constructor(){super(...arguments);this.render=()=>h` <slot part="feedback" class="${this.showStatus}"></slot> `}};Te.styles=b`
12
12
  .on {
13
13
  display: inline-block;
14
14
  }
15
15
  .off {
16
16
  display: none;
17
17
  }
18
- `,Te=n([m("qti-feedback-inline")],Te);var Me=class extends _{render(){return u`
18
+ `,Te=n([m("qti-feedback-inline")],Te);var Me=class extends _{render(){return h`
19
19
  <dialog class="qti-dialog" part="feedback" ?open="${this.showStatus==="on"}">
20
20
  <slot></slot>
21
21
  <div style="margin-top: var(--qti-gap-size); text-align: center;">
22
22
  <button class="button close-button" @click="${this.closeFeedback}"></button>
23
23
  </div>
24
24
  </dialog>
25
- `}openFeedback(){let s=this.shadowRoot?.querySelector("dialog");s&&!s.open&&s.showModal()}closeFeedback(){let s=this.shadowRoot?.querySelector("dialog");s&&s.open&&(s.close(),this.showStatus="off")}firstUpdated(){this.showStatus==="on"&&this.openFeedback()}updated(s){s.has("showStatus")&&(this.showStatus==="on"?this.openFeedback():this.closeFeedback())}};Me.styles=g`
25
+ `}openFeedback(){let i=this.shadowRoot?.querySelector("dialog");i&&!i.open&&i.showModal()}closeFeedback(){let i=this.shadowRoot?.querySelector("dialog");i&&i.open&&(i.close(),this.showStatus="off")}firstUpdated(){this.showStatus==="on"&&this.openFeedback()}updated(i){i.has("showStatus")&&(this.showStatus==="on"?this.openFeedback():this.closeFeedback())}};Me.styles=b`
26
26
  .qti-dialog {
27
27
  background: var(--qti-bg);
28
28
  border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
@@ -71,13 +71,13 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
71
71
  display: inline-block;
72
72
  line-height: 1.5;
73
73
  }
74
- `,Me=n([m("qti-modal-feedback")],Me);var we=class extends v{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,composed:!0,cancelable:!1}))}render(){return u` <slot name="drags"></slot> `}};we.styles=g`
74
+ `,Me=n([m("qti-modal-feedback")],Me);var we=class extends v{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,composed:!0,cancelable:!1}))}render(){return h` <slot name="drags"></slot> `}};we.styles=b`
75
75
  :host {
76
76
  display: flex;
77
77
  user-select: none;
78
78
  position: absolute;
79
79
  }
80
- `,we=n([m("qti-associable-hotspot")],we);var Pt=(c,s,e)=>{class t extends c{}return t};var V=(c,s,e,t)=>{class r extends Pt(c,e,s){constructor(){super(...arguments);this.observer=null;this.droppableObsever=null;this.resizeObserver=null;this.draggables=[];this.droppables=[];this.dragContainers=[];this.dragClone=null;this.dragSource=null;this.touchStartPoint=null;this.isDraggable=!1;this.cloneOffset={x:0,y:0};this.isDragging=!1;this.allDropzones=[];this.lastTarget=null;this.currentDropTarget=null;this.MIN_DRAG_DISTANCE=5;this.DRAG_CLONE_OPACITY=1;this.dataTransfer={data:{},setData(i,l){this.data[i]=l},getData(i){return this.data[i]},effectAllowed:"move"};this.configuration={copyStylesDragClone:!0,dragCanBePlacedBack:!0,dragOnClick:!1};this.minAssociations=1;this.maxAssociations=1;this.draggablesModified=(i,l)=>{for(let h of l)this.draggables.includes(h)&&(this.draggables=this.draggables.filter(f=>f!==h),h.removeAttribute("tabindex"),h.removeEventListener("touchstart",this.handleTouchStart.bind(this)),h.removeEventListener("mousedown",this.handleTouchStart.bind(this)));for(let h of i)this.draggables.includes(h)||(this.draggables.push(h),h.setAttribute("tabindex","0"),h.hasTouchStartListener||(h.addEventListener("touchstart",this.handleTouchStart.bind(this),{passive:!1}),h.addEventListener("mousedown",this.handleTouchStart.bind(this),{passive:!1}),h.hasTouchStartListener=!0));let p=0;this.draggables.forEach(h=>{h.style.viewTransitionName=`drag-${p}-${this.getAttribute("identifier")||crypto.randomUUID()}`,h.setAttribute("qti-draggable","true"),p++})};this.droppablesModified=(i,l)=>{for(let p of l)this.droppables.includes(p)&&(this.droppables=this.droppables.filter(h=>h!==p),this.allDropzones=this.allDropzones.filter(h=>h!==p));for(let p of i)this.droppables.includes(p)||(this.droppables.push(p),this.allDropzones.push(p));for(let p of this.droppables)this.dataset.choicesContainerWidth&&(p.style.width=`${this.dataset.choicesContainerWidth}px`,p.style.boxSizing="border-box")}}handleDraggableContainerChange(i,l){this.isMatchTabular()||(i.length>0||l.length>0)&&this.dragContainersModified(i||[],l||[])}dragContainersModified(i,l){for(let p of l)this.dragContainers.includes(p)&&(this.dragContainers=this.dragContainers.filter(h=>h!==p),this.allDropzones=this.allDropzones.filter(h=>h!==p));for(let p of i)this.dragContainers.includes(p)||(this.dragContainers.push(p),this.allDropzones.push(p))}handleDraggablesChange(i,l){this.isMatchTabular()||(i.length>0||l.length>0)&&this.draggablesModified(i||[],l||[])}handleDroppablesChange(i,l){this.isMatchTabular()||(i.length>0||l.length>0)&&this.droppablesModified(i||[],l||[])}firstUpdated(i){super.firstUpdated(i),this.hasAttribute("disabled")||(document.addEventListener("touchmove",this.handleTouchMove.bind(this),{passive:!1}),document.addEventListener("mousemove",this.handleTouchMove.bind(this),{passive:!1}),document.addEventListener("touchend",this.handleTouchEnd.bind(this),{passive:!1}),document.addEventListener("mouseup",this.handleTouchEnd.bind(this),{passive:!1}),document.addEventListener("touchcancel",this.handleTouchCancel.bind(this),{passive:!1}));let p=Array.from(this.querySelectorAll(s)||[]).concat(Array.from(this.shadowRoot?.querySelectorAll(s)||[])),h=Array.from(this.querySelectorAll(e)||[]).concat(Array.from(this.shadowRoot?.querySelectorAll(e)||[])),f=Array.from(this.querySelectorAll(t)||[]).concat(Array.from(this.shadowRoot?.querySelectorAll(t)||[]));this.dragContainersModified(f,[]),this.droppablesModified(h,[]),this.draggablesModified(p,[]),this.updateMinDimensionsForDropZones(),this.observer=new MutationObserver(()=>this.updateMinDimensionsForDropZones()),this.observer.observe(this,{childList:!0,subtree:!0}),this.resizeObserver=new ResizeObserver(()=>this.updateMinDimensionsForDropZones()),this.querySelectorAll("qti-gap-text").forEach(y=>this.resizeObserver?.observe(y))}async moveDraggableToDroppable(i,l){(()=>{i.style.transform="translate(0, 0)",l.tagName==="SLOT"?i.setAttribute("slot",l.getAttribute("name")):l.appendChild(i),this.checkAllMaxAssociations(),this.saveResponse()})()}activateDroppable(i){this.dragContainers.includes(i)?(this._internals.states.add("--dragzone-active"),i.setAttribute("active","")):(this._internals.states.delete("--dragzone-active"),i.setAttribute("active",""))}deactivateDroppable(i,l=!0){l&&this._internals.states.add("--dragzone-active"),i.removeAttribute("active")}connectedCallback(){super.connectedCallback()}isMatchTabular(){return this.classList.contains("qti-match-tabular")}updateMinDimensionsForDropZones(){let i=this.querySelectorAll(s),l=Array.from(this.querySelectorAll(e)).map(b=>b),p=0,h=0;i.forEach(b=>{let y=b.getBoundingClientRect();p=Math.max(p,y.height),h=Math.max(h,y.width)});let f=this.querySelector(t)||this.shadowRoot?.querySelector(t);f&&(f.style.minHeight=`${p}px`,f.style.minWidth=`${h}px`);for(let b of l)b.style.minHeight=`${p}px`,b.style.minWidth=`${h}px`}activateDroppables(i){this.dragContainers.forEach(p=>{p.setAttribute("enabled",""),p.hasAttribute("disabled")&&(p.contains(i)||p.shadowRoot&&p.shadowRoot.contains(i))&&p.removeAttribute("disabled")}),this.droppables.forEach(p=>{p.setAttribute("enabled",""),p.hasAttribute("disabled")&&(p.contains(i)||p.shadowRoot&&p.shadowRoot.contains(i))&&p.removeAttribute("disabled")})}activateDragLocation(){this._internals.states.add("--dragzone-enabled")}deactivateDragLocation(){this._internals.states.delete("--dragzone-enabled")}deactivateDroppables(){this.dragContainers.forEach(l=>{l.removeAttribute("enabled"),l.removeAttribute("active")}),this.droppables.forEach(l=>{l.removeAttribute("enabled"),l.removeAttribute("active")})}disconnectedCallback(){super.disconnectedCallback(),this.observer&&(this.observer.disconnect(),this.observer=null),this.droppableObsever&&(this.droppableObsever.disconnect(),this.droppableObsever=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),document.removeEventListener("touchmove",this.handleTouchMove),document.removeEventListener("mousemove",this.handleTouchMove),document.removeEventListener("touchend",this.handleTouchEnd),document.removeEventListener("mouseup",this.handleTouchEnd),document.removeEventListener("touchcancel",this.handleTouchCancel)}handleTouchMove(i){if(this.isDraggable&&this.dragClone){let{x:l,y:p}=this.getEventCoordinates(i),h={clientX:l,clientY:p};this.calculateDragDistance(h)>=this.MIN_DRAG_DISTANCE&&(this.isDragging=!0,this.updateDragClonePosition(h));let f=this.findClosestDropzone();this.currentDropTarget=f,f!==this.lastTarget&&(this.lastTarget&&(this.deactivateDroppable(this.lastTarget),this.dispatchCustomEvent(this.lastTarget,"dragleave")),f&&(this.activateDroppable(f),this.dispatchCustomEvent(f,"dragenter")),this.lastTarget=f),this.currentDropTarget&&this.dispatchCustomEvent(this.currentDropTarget,"dragover"),i.preventDefault()}}handleTouchEnd(i){this.isDragging&&this.resetDragState(),this._internals.states.delete("--dragzone-active"),this.checkAllMaxAssociations(),this._internals.states.delete("--dragzone-enabled"),this._internals.states.delete("--dragzone-active"),this.deactivateDragLocation(),this.deactivateDroppables(),this.draggables.forEach(l=>{l.removeAttribute("dragging")}),i.preventDefault()}handleTouchCancel(i){this.resetDragState()}validate(){if(!this.shadowRoot)return!1;let i=this.getValidAssociations(),l=!0,p="";this.maxAssociations>0&&i>this.maxAssociations?(l=!1,p=this.dataset.maxSelectionsMessage||`You've selected too many associations. Maximum allowed is ${this.maxAssociations}.`):this.minAssociations>0&&i<this.minAssociations&&(l=!1,p=this.dataset.minSelectionsMessage||`You haven't selected enough associations. Minimum required is ${this.minAssociations}.`);let h=this.lastElementChild;return this._internals.setValidity(l?{}:{customError:!0},p,h),this.reportValidity(),l}reportValidity(){let i=this.shadowRoot.querySelector("#validationMessage");return i&&(this._internals.validity.valid?(i.textContent="",i.style.display="none"):(i.textContent=this._internals.validationMessage,i.style.display="block")),this._internals.validity.valid}checkMaxAssociations(i){let l=this.getMatchMaxValue(i),p=i.querySelectorAll('[qti-draggable="true"]').length;return l===0||p>=l}dropDraggableInDroppable(i,l){let p=i.cloneNode(!0);p.removeAttribute("style"),this.moveDraggableToDroppable(p,l),this.draggablesModified([p],[]);let h=this.getMatchMaxValue(i),f=this.draggables.filter(b=>b.getAttribute("identifier")===i.getAttribute("identifier"));h!==0&&f.length>=h?(i.style.opacity="0.0",i.style.pointerEvents="none"):i.style.opacity="1.0"}resetDragState(){if(this.dragClone){let i=this.currentDropTarget!==null,l=!i||this.dragContainers.includes(this.currentDropTarget);i&&this.currentDropTarget&&!l&&this.dropDraggableInDroppable(this.dragSource,this.currentDropTarget),l&&(this.dragSource.style.opacity="1.0",this.dragSource.style.display="block",this.dragSource.style.position="static",this.dragSource.style.pointerEvents="auto",this.saveResponse()),this.dragClone.remove(),this.draggablesModified([],[this.dragClone])}this.isDragging=!1,this.isDraggable=!1,this.dragSource=null,this.dragClone=null,this.touchStartPoint=null,this.currentDropTarget=null,this.lastTarget=null,this.deactivateDroppables()}checkAllMaxAssociations(){this.droppables.forEach(i=>{this.checkMaxAssociations(i)?this.disableDroppable(i):this.enableDroppable(i)})}getMatchMaxValue(i){let l=i.getAttribute("match-max");return l?parseInt(l,10):1}disableDroppable(i){i.setAttribute("disabled","")}enableDroppable(i){i.removeAttribute("disabled")}get value(){return this.collectResponseData()}set value(i){if(!this.isMatchTabular())if(Array.isArray(i)){this.reset(),i?.forEach(p=>this.placeResponse(p));let l=new FormData;i.forEach(p=>{l.append(this.responseIdentifier,p)}),this._internals.setFormValue(l)}else this._internals.setFormValue(i||"")}placeResponse(i){let[l,...p]=i.split(" ").reverse(),h=Array.from(this.draggables),f=Array.from(this.droppables);p.forEach(b=>{let y=h.find(x=>x.getAttribute("identifier")===b),T=f.find(x=>x.getAttribute("identifier")===l);this.dropDraggableInDroppable(y,T)})}getValidAssociations(){return this.droppables.filter(i=>i.childElementCount>0).length}saveResponse(){let i=this.collectResponseData();this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:i}}))}collectResponseData(){return this.droppables.map(l=>{let h=this.getDraggablesFromDroppable(l).map(b=>b.getAttribute("identifier")),f=l.getAttribute("identifier");return h.map(b=>`${b} ${f}`)}).flat()}getDraggablesFromDroppable(i){return this.draggables.map(h=>h.getAttribute("identifier")).filter((h,f,b)=>b.indexOf(h)===f).flatMap(h=>Array.from(i.querySelectorAll(`[identifier='${h}']`))).filter(h=>!!h).map(h=>h)}reset(i=!1){this.droppables.forEach(l=>{this.getDraggablesFromDroppable(l).forEach(h=>{h.remove(),this.draggablesModified([],[h])})}),this.dragContainers.forEach(l=>{Array.from(l.querySelectorAll('[qti-draggable="true"]')).forEach(h=>{h.style.opacity="1.0"})}),this.dragClone=null,this.dragSource=null,this.isDragging=!1,this.isDraggable=!1,this.currentDropTarget=null,this.lastTarget=null,i&&this.saveResponse()}updateDragClonePosition(i){if(!this.isDragging||!this.dragClone)return;let l=i.clientX-this.cloneOffset.x,p=i.clientY-this.cloneOffset.y,{newLeft:h,newTop:f}=this.applyInteractionBoundaries(l,p,this.dragClone);this.dragClone.style.left=`${h}px`,this.dragClone.style.top=`${f}px`}applyInteractionBoundaries(i,l,p){let h=this.getBoundingClientRect(),f=p.getBoundingClientRect(),b=f.width,y=f.height,T=Math.max(h.left,Math.min(i,h.right-b)),x=Math.max(h.top,Math.min(l,h.bottom-y));return{newLeft:T,newTop:x}}getEventCoordinates(i,l=!1){let p=i.touches?i.touches[0]:i;return{x:l?p.pageX:p.clientX,y:l?p.pageY:p.clientY}}calculateDragDistance(i){let l=Math.abs(i.clientX-this.touchStartPoint.x),p=Math.abs(i.clientY-this.touchStartPoint.y);return l+p}findClosestDropzone(){let i=this.allDropzones.filter(f=>!f.hasAttribute("disabled"));if(!this.dragClone||i.length===0)return null;let l=this.dragClone.getBoundingClientRect(),p=null,h=0;for(let f of i){let b=f.getBoundingClientRect(),y=this.calculateOverlapArea(l,b);y>h&&(h=y,p=f)}if(!p){let f=200;for(let b of i){let y=b.getBoundingClientRect(),T=Math.sqrt(Math.pow(l.left-y.left,2)+Math.pow(l.top-y.top,2));T<f&&(f=T,p=b)}}return p}calculateOverlapArea(i,l){let p=Math.max(0,Math.min(i.right,l.right)-Math.max(i.left,l.left)),h=Math.max(0,Math.min(i.bottom,l.bottom)-Math.max(i.top,l.top));return p*h}dispatchCustomEvent(i,l,p=!0){if(!i)return;let h=new CustomEvent(l,{bubbles:p,cancelable:!0});h.dataTransfer=this.dataTransfer,i.dispatchEvent(h)}appendClone(){document.body.appendChild(this.dragClone)}handleTouchStart(i){if(this.isDragging)return;let{x:l,y:p}=this.getEventCoordinates(i);this.touchStartPoint={x:l,y:p},this.dragSource=i.currentTarget,this.isDraggable=!0,this._internals.states.add("--dragzone-enabled"),this._internals.states.add("--dragzone-active"),this.activateDragLocation(),this.activateDroppables(this.dragSource);let h=this.findDraggableInDraggableContainer(this.dragSource.getAttribute("identifier")),f=this.droppables.some(M=>Array.from(M.children).some(oe=>oe===this.dragSource)),b=this.dragSource.getBoundingClientRect();f&&(this.dragSource.remove(),this.draggablesModified([],[this.dragSource]),this.dragSource=h),this.cloneOffset.x=l-b.left,this.cloneOffset.y=p-b.top,this.dragClone=h.cloneNode(!0);let y=window.getComputedStyle(h);for(let M=0;M<y.length;M++){let oe=y[M];this.dragClone.style.setProperty(oe,y.getPropertyValue(oe))}let T=h.getBoundingClientRect();this.dragClone.style.width=`${T.width}px`,this.dragClone.style.height=`${T.height}px`,b&&this.setDragCloneStyles(b),this.dragClone.style.display="block",this.dragClone.style.opacity="1",this.appendClone();let x=this.getMatchMaxValue(this.dragSource),ie=this.draggables.filter(M=>M.getAttribute("identifier")===this.dragSource.getAttribute("identifier"));x!==0&&ie.length>=x?(h.style.opacity="0.0",h.style.pointerEvents="none"):h.style.opacity="1.0",i.preventDefault(),this.dragClone.setAttribute("dragging","")}findParentInteractionElement(i){let l=i.parentElement;for(;l&&!l.tagName?.toLowerCase().endsWith("-interaction");)l=l.parentElement;return l}findDraggableInDraggableContainer(i){let l=this.dragContainers.flat();for(let p of l){if(p.getAttribute("identifier")===i)return p;let h;p instanceof HTMLSlotElement?h=Array.from(p?.assignedElements()||[]):h=Array.from(p.querySelectorAll(s));let f=h.find(b=>b.getAttribute("identifier")===i);if(f)return f}}setDragCloneStyles(i){this.dragClone.style.position="fixed",this.dragClone.style.top=`${i.top}px`,this.dragClone.style.left=`${i.left}px`,this.dragClone.style.setProperty("box-sizing","border-box","important"),this.dragClone.style.zIndex="9999",this.dragClone.style.pointerEvents="none",this.dragClone.style.opacity=this.DRAG_CLONE_OPACITY.toString(),this.dragClone.style.display="block"}}return n([d({attribute:!1,type:Object})],r.prototype,"configuration",2),n([d({type:Number,reflect:!0,attribute:"min-associations"})],r.prototype,"minAssociations",2),n([d({type:Number,reflect:!0,attribute:"max-associations"})],r.prototype,"maxAssociations",2),n([Ue(t)],r.prototype,"handleDraggableContainerChange",1),n([Ue(s)],r.prototype,"handleDraggablesChange",1),n([Ue(e)],r.prototype,"handleDroppablesChange",1),r};var Ft=g`
80
+ `,we=n([m("qti-associable-hotspot")],we);var Pt=(c,i,e)=>{class t extends c{}return t};var V=(c,i,e,t)=>{class r extends Pt(c,e,i){constructor(){super(...arguments);this.observer=null;this.droppableObsever=null;this.resizeObserver=null;this.draggables=[];this.droppables=[];this.dragContainers=[];this.dragClone=null;this.dragSource=null;this.touchStartPoint=null;this.isDraggable=!1;this.cloneOffset={x:0,y:0};this.isDragging=!1;this.allDropzones=[];this.lastTarget=null;this.currentDropTarget=null;this.MIN_DRAG_DISTANCE=5;this.DRAG_CLONE_OPACITY=1;this.dataTransfer={data:{},setData(o,l){this.data[o]=l},getData(o){return this.data[o]},effectAllowed:"move"};this.configuration={copyStylesDragClone:!0,dragCanBePlacedBack:!0,dragOnClick:!1};this.minAssociations=1;this.maxAssociations=1;this.draggablesModified=(o,l)=>{for(let u of l)this.draggables.includes(u)&&(this.draggables=this.draggables.filter(f=>f!==u),u.removeAttribute("tabindex"),u.removeEventListener("touchstart",this.handleTouchStart.bind(this)),u.removeEventListener("mousedown",this.handleTouchStart.bind(this)));for(let u of o)this.draggables.includes(u)||(this.draggables.push(u),u.setAttribute("tabindex","0"),u.hasTouchStartListener||(u.addEventListener("touchstart",this.handleTouchStart.bind(this),{passive:!1}),u.addEventListener("mousedown",this.handleTouchStart.bind(this),{passive:!1}),u.hasTouchStartListener=!0));let p=0;this.draggables.forEach(u=>{u.style.viewTransitionName=`drag-${p}-${this.getAttribute("identifier")||crypto.randomUUID()}`,u.setAttribute("qti-draggable","true"),p++})};this.droppablesModified=(o,l)=>{for(let p of l)this.droppables.includes(p)&&(this.droppables=this.droppables.filter(u=>u!==p),this.allDropzones=this.allDropzones.filter(u=>u!==p));for(let p of o)this.droppables.includes(p)||(this.droppables.push(p),this.allDropzones.push(p));for(let p of this.droppables)this.dataset.choicesContainerWidth&&(p.style.width=`${this.dataset.choicesContainerWidth}px`,p.style.boxSizing="border-box")}}handleDraggableContainerChange(o,l){this.isMatchTabular()||(o.length>0||l.length>0)&&this.dragContainersModified(o||[],l||[])}dragContainersModified(o,l){for(let p of l)this.dragContainers.includes(p)&&(this.dragContainers=this.dragContainers.filter(u=>u!==p),this.allDropzones=this.allDropzones.filter(u=>u!==p));for(let p of o)this.dragContainers.includes(p)||(this.dragContainers.push(p),this.allDropzones.push(p))}handleDraggablesChange(o,l){this.isMatchTabular()||(o.length>0||l.length>0)&&this.draggablesModified(o||[],l||[])}handleDroppablesChange(o,l){this.isMatchTabular()||(o.length>0||l.length>0)&&this.droppablesModified(o||[],l||[])}firstUpdated(o){super.firstUpdated(o),this.hasAttribute("disabled")||(document.addEventListener("touchmove",this.handleTouchMove.bind(this),{passive:!1}),document.addEventListener("mousemove",this.handleTouchMove.bind(this),{passive:!1}),document.addEventListener("touchend",this.handleTouchEnd.bind(this),{passive:!1}),document.addEventListener("mouseup",this.handleTouchEnd.bind(this),{passive:!1}),document.addEventListener("touchcancel",this.handleTouchCancel.bind(this),{passive:!1}));let p=Array.from(this.querySelectorAll(i)||[]).concat(Array.from(this.shadowRoot?.querySelectorAll(i)||[])),u=Array.from(this.querySelectorAll(e)||[]).concat(Array.from(this.shadowRoot?.querySelectorAll(e)||[])),f=Array.from(this.querySelectorAll(t)||[]).concat(Array.from(this.shadowRoot?.querySelectorAll(t)||[]));this.dragContainersModified(f,[]),this.droppablesModified(u,[]),this.draggablesModified(p,[]),this.updateMinDimensionsForDropZones(),this.observer=new MutationObserver(()=>this.updateMinDimensionsForDropZones()),this.observer.observe(this,{childList:!0,subtree:!0}),this.resizeObserver=new ResizeObserver(()=>this.updateMinDimensionsForDropZones()),this.querySelectorAll("qti-gap-text").forEach(y=>this.resizeObserver?.observe(y))}async moveDraggableToDroppable(o,l){(()=>{o.style.transform="translate(0, 0)",l.tagName==="SLOT"?o.setAttribute("slot",l.getAttribute("name")):l.appendChild(o),this.checkAllMaxAssociations(),this.saveResponse()})()}activateDroppable(o){this.dragContainers.includes(o)?(this._internals.states.add("--dragzone-active"),o.setAttribute("active","")):(this._internals.states.delete("--dragzone-active"),o.setAttribute("active",""))}deactivateDroppable(o,l=!0){l&&this._internals.states.add("--dragzone-active"),o.removeAttribute("active")}connectedCallback(){super.connectedCallback()}isMatchTabular(){return this.classList.contains("qti-match-tabular")}updateMinDimensionsForDropZones(){let o=this.querySelectorAll(i),l=Array.from(this.querySelectorAll(e)).map(g=>g),p=0,u=0;o.forEach(g=>{let y=g.getBoundingClientRect();p=Math.max(p,y.height),u=Math.max(u,y.width)});let f=this.querySelector(t)||this.shadowRoot?.querySelector(t);f&&(f.style.minHeight=`${p}px`,f.style.minWidth=`${u}px`);for(let g of l)g.style.minHeight=`${p}px`,g.style.minWidth=`${u}px`}activateDroppables(o){this.dragContainers.forEach(p=>{p.setAttribute("enabled",""),p.hasAttribute("disabled")&&(p.contains(o)||p.shadowRoot&&p.shadowRoot.contains(o))&&p.removeAttribute("disabled")}),this.droppables.forEach(p=>{p.setAttribute("enabled",""),p.hasAttribute("disabled")&&(p.contains(o)||p.shadowRoot&&p.shadowRoot.contains(o))&&p.removeAttribute("disabled")})}activateDragLocation(){this._internals.states.add("--dragzone-enabled")}deactivateDragLocation(){this._internals.states.delete("--dragzone-enabled")}deactivateDroppables(){this.dragContainers.forEach(l=>{l.removeAttribute("enabled"),l.removeAttribute("active")}),this.droppables.forEach(l=>{l.removeAttribute("enabled"),l.removeAttribute("active")})}disconnectedCallback(){super.disconnectedCallback(),this.observer&&(this.observer.disconnect(),this.observer=null),this.droppableObsever&&(this.droppableObsever.disconnect(),this.droppableObsever=null),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),document.removeEventListener("touchmove",this.handleTouchMove),document.removeEventListener("mousemove",this.handleTouchMove),document.removeEventListener("touchend",this.handleTouchEnd),document.removeEventListener("mouseup",this.handleTouchEnd),document.removeEventListener("touchcancel",this.handleTouchCancel)}handleTouchMove(o){if(this.isDraggable&&this.dragClone){let{x:l,y:p}=this.getEventCoordinates(o),u={clientX:l,clientY:p};this.calculateDragDistance(u)>=this.MIN_DRAG_DISTANCE&&(this.isDragging=!0,this.updateDragClonePosition(u));let f=this.findClosestDropzone();this.currentDropTarget=f,f!==this.lastTarget&&(this.lastTarget&&(this.deactivateDroppable(this.lastTarget),this.dispatchCustomEvent(this.lastTarget,"dragleave")),f&&(this.activateDroppable(f),this.dispatchCustomEvent(f,"dragenter")),this.lastTarget=f),this.currentDropTarget&&this.dispatchCustomEvent(this.currentDropTarget,"dragover"),o.preventDefault()}}handleTouchEnd(o){this.isDragging&&this.resetDragState(),this._internals.states.delete("--dragzone-active"),this.checkAllMaxAssociations(),this._internals.states.delete("--dragzone-enabled"),this._internals.states.delete("--dragzone-active"),this.deactivateDragLocation(),this.deactivateDroppables(),this.draggables.forEach(l=>{l.removeAttribute("dragging")}),o.preventDefault()}handleTouchCancel(o){this.resetDragState()}validate(){if(!this.shadowRoot)return!1;let o=this.getValidAssociations(),l=!0,p="";this.maxAssociations>0&&o>this.maxAssociations?(l=!1,p=this.dataset.maxSelectionsMessage||`You've selected too many associations. Maximum allowed is ${this.maxAssociations}.`):this.minAssociations>0&&o<this.minAssociations&&(l=!1,p=this.dataset.minSelectionsMessage||`You haven't selected enough associations. Minimum required is ${this.minAssociations}.`);let u=this.lastElementChild;return this._internals.setValidity(l?{}:{customError:!0},p,u),l}reportValidity(){let o=this.shadowRoot.querySelector("#validationMessage");return o&&(this._internals.validity.valid?(o.textContent="",o.style.display="none"):(o.textContent=this._internals.validationMessage,o.style.display="block")),this._internals.validity.valid}checkMaxAssociations(o){let l=this.getMatchMaxValue(o),p=o.querySelectorAll('[qti-draggable="true"]').length;return!(l===0)&&p>=l}dropDraggableInDroppable(o,l){let p=o.cloneNode(!0);p.removeAttribute("style"),this.moveDraggableToDroppable(p,l),this.draggablesModified([p],[]);let u=this.getMatchMaxValue(o),f=this.draggables.filter(g=>g.getAttribute("identifier")===o.getAttribute("identifier"));u!==0&&f.length>=u?(o.style.opacity="0.0",o.style.pointerEvents="none"):o.style.opacity="1.0"}resetDragState(){if(this.dragClone){let o=this.currentDropTarget!==null,l=!o||this.dragContainers.includes(this.currentDropTarget);o&&this.currentDropTarget&&!l&&this.dropDraggableInDroppable(this.dragSource,this.currentDropTarget),l&&(this.dragSource.style.opacity="1.0",this.dragSource.style.display="block",this.dragSource.style.position="static",this.dragSource.style.pointerEvents="auto",this.saveResponse()),this.dragClone.remove(),this.draggablesModified([],[this.dragClone])}this.isDragging=!1,this.isDraggable=!1,this.dragSource=null,this.dragClone=null,this.touchStartPoint=null,this.currentDropTarget=null,this.lastTarget=null,this.deactivateDroppables()}checkAllMaxAssociations(){let o=this.getValidAssociations(),l=this.maxAssociations!==0&&o>=this.maxAssociations;this.droppables.forEach(p=>{l?this.disableDroppable(p):this.checkMaxAssociations(p)?this.disableDroppable(p):this.enableDroppable(p)})}getMatchMaxValue(o){let l=o.getAttribute("match-max");return l?parseInt(l,10):1}disableDroppable(o){o.setAttribute("disabled","")}enableDroppable(o){o.removeAttribute("disabled")}get value(){return this.collectResponseData()}set value(o){if(!this.isMatchTabular())if(Array.isArray(o)){this.reset(),o?.forEach(p=>this.placeResponse(p));let l=new FormData;o.forEach(p=>{l.append(this.responseIdentifier,p)}),this._internals.setFormValue(l)}else this._internals.setFormValue(o||"")}placeResponse(o){let[l,...p]=o.split(" ").reverse(),u=Array.from(this.draggables),f=Array.from(this.droppables);p.forEach(g=>{let y=u.find(x=>x.getAttribute("identifier")===g),T=f.find(x=>x.getAttribute("identifier")===l);this.dropDraggableInDroppable(y,T)})}getValidAssociations(){let o=0;for(let l of this.droppables)o=o+this.getDraggablesFromDroppable(l).length;return o}saveResponse(){let o=this.collectResponseData();this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:o}}))}collectResponseData(){return this.droppables.map(l=>{let u=this.getDraggablesFromDroppable(l).map(g=>g.getAttribute("identifier")),f=l.getAttribute("identifier");return u.map(g=>`${g} ${f}`)}).flat()}getDraggablesFromDroppable(o){return this.draggables.map(u=>u.getAttribute("identifier")).filter((u,f,g)=>g.indexOf(u)===f).flatMap(u=>Array.from(o.querySelectorAll(`[identifier='${u}']`))).filter(u=>!!u).map(u=>u)}reset(o=!1){this.droppables.forEach(l=>{this.getDraggablesFromDroppable(l).forEach(u=>{u.remove(),this.draggablesModified([],[u])})}),this.dragContainers.forEach(l=>{Array.from(l.querySelectorAll('[qti-draggable="true"]')).forEach(u=>{u.style.opacity="1.0"})}),this.dragClone=null,this.dragSource=null,this.isDragging=!1,this.isDraggable=!1,this.currentDropTarget=null,this.lastTarget=null,o&&this.saveResponse()}updateDragClonePosition(o){if(!this.isDragging||!this.dragClone)return;let l=o.clientX-this.cloneOffset.x,p=o.clientY-this.cloneOffset.y,{newLeft:u,newTop:f}=this.applyInteractionBoundaries(l,p,this.dragClone);this.dragClone.style.left=`${u}px`,this.dragClone.style.top=`${f}px`}applyInteractionBoundaries(o,l,p){let u=this.getBoundingClientRect(),f=p.getBoundingClientRect(),g=f.width,y=f.height,T=Math.max(u.left,Math.min(o,u.right-g)),x=Math.max(u.top,Math.min(l,u.bottom-y));return{newLeft:T,newTop:x}}getEventCoordinates(o,l=!1){let p=o.touches?o.touches[0]:o;return{x:l?p.pageX:p.clientX,y:l?p.pageY:p.clientY}}calculateDragDistance(o){let l=Math.abs(o.clientX-this.touchStartPoint.x),p=Math.abs(o.clientY-this.touchStartPoint.y);return l+p}findClosestDropzone(){let o=this.allDropzones.filter(f=>!f.hasAttribute("disabled"));if(!this.dragClone||o.length===0)return null;let l=this.dragClone.getBoundingClientRect(),p=null,u=0;for(let f of o){let g=f.getBoundingClientRect(),y=this.calculateOverlapArea(l,g);y>u&&(u=y,p=f)}if(!p){let f=200;for(let g of o){let y=g.getBoundingClientRect(),T=Math.sqrt(Math.pow(l.left-y.left,2)+Math.pow(l.top-y.top,2));T<f&&(f=T,p=g)}}return p}calculateOverlapArea(o,l){let p=Math.max(0,Math.min(o.right,l.right)-Math.max(o.left,l.left)),u=Math.max(0,Math.min(o.bottom,l.bottom)-Math.max(o.top,l.top));return p*u}dispatchCustomEvent(o,l,p=!0){if(!o)return;let u=new CustomEvent(l,{bubbles:p,cancelable:!0});u.dataTransfer=this.dataTransfer,o.dispatchEvent(u)}appendClone(){document.body.appendChild(this.dragClone)}handleTouchStart(o){if(this.isDragging)return;let{x:l,y:p}=this.getEventCoordinates(o);this.touchStartPoint={x:l,y:p},this.dragSource=o.currentTarget,this.isDraggable=!0,this._internals.states.add("--dragzone-enabled"),this._internals.states.add("--dragzone-active"),this.activateDragLocation(),this.activateDroppables(this.dragSource);let u=this.findDraggableInDraggableContainer(this.dragSource.getAttribute("identifier")),f=this.droppables.some(M=>Array.from(M.children).some(W=>W===this.dragSource)),g=this.dragSource.getBoundingClientRect();f&&(this.dragSource.remove(),this.draggablesModified([],[this.dragSource]),this.dragSource=u),this.cloneOffset.x=l-g.left,this.cloneOffset.y=p-g.top,this.dragClone=u.cloneNode(!0);let y=window.getComputedStyle(u);for(let M=0;M<y.length;M++){let W=y[M];this.dragClone.style.setProperty(W,y.getPropertyValue(W))}let T=u.getBoundingClientRect();this.dragClone.style.width=`${T.width}px`,this.dragClone.style.height=`${T.height}px`,g&&this.setDragCloneStyles(g),this.dragClone.style.display="block",this.dragClone.style.opacity="1",this.appendClone();let x=this.getMatchMaxValue(this.dragSource),j=this.draggables.filter(M=>M.getAttribute("identifier")===this.dragSource.getAttribute("identifier"));x!==0&&j.length>=x?(u.style.opacity="0.0",u.style.pointerEvents="none"):u.style.opacity="1.0",o.preventDefault(),this.dragClone.setAttribute("dragging","")}findDraggableInDraggableContainer(o){let l=this.dragContainers.flat();for(let p of l){if(p.getAttribute("identifier")===o)return p;let u;p instanceof HTMLSlotElement?u=Array.from(p?.assignedElements()||[]):u=Array.from(p.querySelectorAll(i));let f=u.find(g=>g.getAttribute("identifier")===o);if(f)return f}}setDragCloneStyles(o){this.dragClone.style.position="fixed",this.dragClone.style.top=`${o.top}px`,this.dragClone.style.left=`${o.left}px`,this.dragClone.style.setProperty("box-sizing","border-box","important"),this.dragClone.style.zIndex="9999",this.dragClone.style.pointerEvents="none",this.dragClone.style.opacity=this.DRAG_CLONE_OPACITY.toString(),this.dragClone.style.display="block"}}return n([d({attribute:!1,type:Object})],r.prototype,"configuration",2),n([d({type:Number,reflect:!0,attribute:"min-associations"})],r.prototype,"minAssociations",2),n([d({type:Number,reflect:!0,attribute:"max-associations"})],r.prototype,"maxAssociations",2),n([Ue(t)],r.prototype,"handleDraggableContainerChange",1),n([Ue(i)],r.prototype,"handleDraggablesChange",1),n([Ue(e)],r.prototype,"handleDroppablesChange",1),r};var Ft=b`
81
81
  :host {
82
82
  display: block; /* necessary to calculate scaling position */
83
83
  }
@@ -102,16 +102,16 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
102
102
  rgb(0 0 0 / 0%) calc(50% + 1px)
103
103
  );
104
104
  }
105
- `;var de=class extends V(E,"qti-simple-associable-choice",".dl","slot[name='qti-simple-associable-choice']"){constructor(){super();this._childrenMap=[];this._registerChoiceHandler=this._registerChoice.bind(this),this.addEventListener("register-qti-simple-associable-choice",this._registerChoiceHandler)}_registerChoice(e){let t=e.target;this._childrenMap.push(t)}render(){return u` <slot name="prompt"></slot>
105
+ `;var de=class extends V(E,"qti-simple-associable-choice",".dl","slot[name='qti-simple-associable-choice']"){constructor(){super();this._childrenMap=[];this._registerChoiceHandler=this._registerChoice.bind(this),this.addEventListener("register-qti-simple-associable-choice",this._registerChoiceHandler)}_registerChoice(e){let t=e.target;this._childrenMap.push(t)}render(){return h` <slot name="prompt"></slot>
106
106
  <slot name="qti-simple-associable-choice"></slot>
107
107
  <div part="drop-container">
108
- ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,t)=>u`<div part="associables-container">
108
+ ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,t)=>h`<div part="associables-container">
109
109
  <div name="left${t}" part="drop-list" class="dl" identifier="droplist${t}_left"></div>
110
110
  <div name="right${t}" part="drop-list" class="dl" identifier="droplist${t}_right"></div>
111
111
  </div>`)}
112
112
 
113
113
  <div role="alert" id="validationMessage"></div>
114
- </div>`}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("register-qti-simple-associable-choice",this._registerChoiceHandler)}};de.styles=Ft,n([C()],de.prototype,"_childrenMap",2),de=n([m("qti-associate-interaction")],de);var K=(c,s)=>{class e extends c{constructor(){super(...arguments);this._choiceElements=[];this.minChoices=0;this.maxChoices=1;this._handleDisabledChange=(o,a)=>{this._choiceElements.forEach(i=>i.disabled=a)};this._handleReadonlyChange=(o,a)=>{this._choiceElements.forEach(i=>i.readonly=a)};this._value=""}_handleMaxChoicesChange(o,a){this._determineInputType()}get value(){return Array.isArray(this._value)&&this._value.length===0||this._value===""?null:Array.isArray(this._value)?this._value.join(","):this._value}set value(o){if(this.maxChoices>1&&(typeof o=="string"||o===null)?this._value=o?o.toString().split(","):[]:this._value=o||"",Array.isArray(this._value)){let a=new FormData;this._value.forEach(i=>{a.append(this.responseIdentifier,i)}),this._internals.setFormValue(a)}else this._internals.setFormValue(this._value);this._updateChoiceSelection()}get correctResponse(){return this._correctResponse}set correctResponse(o){this._correctResponse=o;let a=Array.isArray(o)?o:[o];this._choiceElements.forEach(i=>{i.internals.states.delete("correct-response"),i.internals.states.delete("incorrect-response"),a.length>0&&(a.includes(i.identifier)?i.internals.states.add("correct-response"):i.internals.states.add("incorrect-response"))})}connectedCallback(){super.connectedCallback(),this.addEventListener(`register-${s}`,this._registerChoiceElement),this.addEventListener(`unregister-${s}`,this._unregisterChoiceElement),this.addEventListener(`activate-${s}`,this._choiceElementSelectedHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(`register-${s}`,this._registerChoiceElement),this.removeEventListener(`unregister-${s}`,this._unregisterChoiceElement),this.removeEventListener(`activate-${s}`,this._choiceElementSelectedHandler)}validate(){let o=this._choiceElements.filter(p=>this._getChoiceChecked(p)),a=o.length,i=!0,l="";return this.maxChoices!==0&&a>this.maxChoices?(i=!1,l=this.dataset.maxSelectionsMessage||`You can select at most ${this.maxChoices} choices.`):a<this.minChoices&&(i=!1,l=this.dataset.minSelectionsMessage||`You must select at least ${this.minChoices} choices.`),o.length>0&&this._internals.setValidity(i?{}:{customError:!0},l,o[a-1]||this._choiceElements[0]||this),this.reportValidity(),i}reportValidity(){return this._validationMessageElement&&(this._internals.validity.valid?(this._validationMessageElement.textContent="",this._validationMessageElement.style.display="none"):(this._validationMessageElement.textContent=this._internals.validationMessage,this._validationMessageElement.style.display="block")),this._internals.validity.valid}_registerChoiceElement(o){o.stopPropagation();let a=o.target;a.disabled=this.disabled,this._choiceElements.push(a),this._setInputType(a)}_unregisterChoiceElement(o){o.stopPropagation();let a=o.target;this._choiceElements=this._choiceElements.filter(i=>i!==a)}_determineInputType(){this._choiceElements.forEach(o=>{this._setInputType(o)})}_setInputType(o){this._internals.ariaLabel=this.maxChoices===1?"radio-group":"checkbox-group";let a=this.maxChoices===1?"radio":"checkbox";o.internals.role=a,o.internals.states.delete(a==="radio"?"checkbox":"radio"),o.internals.states.add(a)}_choiceElementSelectedHandler(o){this._toggleChoiceChecked(o.target),this.maxChoices===1&&this._choiceElements.forEach(a=>{a.identifier!==o.detail.identifier&&this._setChoiceChecked(a,!1)}),this._handleChoiceSelection()}_setChoiceChecked(o,a){o.internals?.states&&(a?(o.internals.states.add("--checked"),o.internals.ariaChecked="true"):(o.internals.states.delete("--checked"),o.internals.ariaChecked="false"))}_getChoiceChecked(o){return o.internals.states.has("--checked")}_toggleChoiceChecked(o){let a=this._getChoiceChecked(o);this._setChoiceChecked(o,!a)}_handleChoiceSelection(){let a=this._choiceElements.filter(i=>this._getChoiceChecked(i)).map(i=>i.identifier);this.value=this.maxChoices===1?a[0]||"":a,this.validate(),this.saveResponse(this._value)}_updateChoiceSelection(){let o=Array.isArray(this._value)?this._value:[this._value];this._choiceElements.forEach(a=>{let i=o.includes(a.identifier);this._setChoiceChecked(a,i)})}}return n([Ye("#validationMessage")],e.prototype,"_validationMessageElement",2),n([d({type:Number,attribute:"min-choices"})],e.prototype,"minChoices",2),n([d({type:Number,attribute:"max-choices"})],e.prototype,"maxChoices",2),n([w("maxChoices",{waitUntilFirstUpdate:!0})],e.prototype,"_handleMaxChoicesChange",1),n([w("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"_handleDisabledChange",2),n([w("readonly",{waitUntilFirstUpdate:!0})],e.prototype,"_handleReadonlyChange",2),e};var je=(c,s)=>{class e extends c{constructor(){super(...arguments);this.shuffle="false"}connectedCallback(){super.connectedCallback(),this._applyShuffle()}updated(o){o.has("shuffle")&&this._applyShuffle()}_applyShuffle(){this.shuffle==="true"?this._shuffleChoices():this._resetShuffleChoices()}_shuffleChoices(){let o=Array.from(this.querySelectorAll(s)),a=o.filter(b=>b.hasAttribute("fixed")),i=o.filter(b=>!b.hasAttribute("fixed"));if(i.length<=1){console.warn("Shuffling is not possible with fewer than 2 non-fixed elements.");return}let l=[...i],p=!1,h=0;for(;!p&&h<10;){h++;for(let b=i.length-1;b>0;b--){let y=Math.floor(Math.random()*(b+1));[i[b],i[y]]=[i[y],i[b]]}p=!i.every((b,y)=>b===l[y])}p||console.warn("Failed to shuffle the choices after multiple attempts.");let f=1;[...a,...i].forEach(b=>{b.style.setProperty("order",String(f++))})}_resetShuffleChoices(){this.querySelectorAll(s).forEach(o=>{o.style.setProperty("order","initial")})}}return n([d({type:String,reflect:!0})],e.prototype,"shuffle",2),e};var zt=(c,s)=>{class e extends c{constructor(){super(...arguments);this._classes=[];this._allLabels=["qti-labels-decimal","qti-labels-lower-alpha","qti-labels-upper-alpha"];this._allLabelSuffixes=["qti-labels-suffix-period","qti-labels-suffix-parenthesis"]}set class(o){o&&(this._classes=o.split(" "),this._addLabels())}get class(){return this._classes?.join(" ")||""}updated(o){super.updated(o),o.has("shuffle")&&this._addLabels()}_addLabels(){let o=this._classes.some(i=>this._allLabels.includes(i)||this._allLabelSuffixes.includes(i)),a=i=>!isNaN(+i);if(o){let l=Array.from(this.querySelectorAll("qti-simple-choice")).map(p=>p).map((p,h)=>({el:p,order:a(p.style.order)?+p.style.order:h+1})).sort((p,h)=>p.order-h.order).map(p=>p.el);for(let p=0;p<l.length;p++)l[p].marker=this._getLabel(p+1)}}_getLabel(o){let a=this._classes.filter(p=>this._allLabels.includes(p)).pop(),i=this._classes.filter(p=>this._allLabelSuffixes.includes(p)).pop();!a&&i&&(a="qti-labels-upper-alpha");let l="";switch(a){case"qti-labels-decimal":l=`${o}`;break;case"qti-labels-lower-alpha":l=`${String.fromCharCode(97+o-1)}`;break;case"qti-labels-upper-alpha":l=`${String.fromCharCode(65+o-1)}`;break}return i==="qti-labels-suffix-period"?l+=".":i==="qti-labels-suffix-parenthesis"&&(l+=")"),l}}return n([d({type:String,reflect:!0})],e.prototype,"class",1),e};var Yt=g`
114
+ </div>`}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("register-qti-simple-associable-choice",this._registerChoiceHandler)}};de.styles=Ft,n([C()],de.prototype,"_childrenMap",2),de=n([m("qti-associate-interaction")],de);var Z=(c,i)=>{class e extends c{constructor(){super(...arguments);this._choiceElements=[];this.minChoices=0;this.maxChoices=1;this._handleDisabledChange=(s,a)=>{this._choiceElements.forEach(o=>o.disabled=a)};this._handleReadonlyChange=(s,a)=>{this._choiceElements.forEach(o=>o.readonly=a)};this._value=""}_handleMaxChoicesChange(s,a){this._determineInputType()}get value(){return Array.isArray(this._value)&&this._value.length===0||this._value===""?null:Array.isArray(this._value)?this._value.join(","):this._value}set value(s){if(this.maxChoices>1&&(typeof s=="string"||s===null)?this._value=s?s.toString().split(","):[]:this._value=s||"",Array.isArray(this._value)){let a=new FormData;this._value.forEach(o=>{a.append(this.responseIdentifier,o)}),this._internals.setFormValue(a)}else this._internals.setFormValue(this._value);this._updateChoiceSelection()}get correctResponse(){return this._correctResponse}set correctResponse(s){this._correctResponse=s;let a=Array.isArray(s)?s:[s];this._choiceElements.forEach(o=>{o.internals.states.delete("correct-response"),o.internals.states.delete("incorrect-response"),a.length>0&&(a.includes(o.identifier)?o.internals.states.add("correct-response"):o.internals.states.add("incorrect-response"))})}connectedCallback(){super.connectedCallback(),this.addEventListener(`register-${i}`,this._registerChoiceElement),this.addEventListener(`unregister-${i}`,this._unregisterChoiceElement),this.addEventListener(`activate-${i}`,this._choiceElementSelectedHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(`register-${i}`,this._registerChoiceElement),this.removeEventListener(`unregister-${i}`,this._unregisterChoiceElement),this.removeEventListener(`activate-${i}`,this._choiceElementSelectedHandler)}validate(){let s=this._choiceElements.filter(p=>this._getChoiceChecked(p)),a=s.length,o=!0,l="";return this.maxChoices!==0&&a>this.maxChoices?(o=!1,l=this.dataset.maxSelectionsMessage||`Please select no more than ${this.maxChoices} ${this.maxChoices===1?"option":"options"}.`):a<this.minChoices&&(o=!1,l=`Please select at least ${this.minChoices} ${this.minChoices===1?"option":"options"}.`),s.length>0&&this._internals.setValidity(o?{}:{customError:!0},l,s[a-1]||this._choiceElements[0]||this),o}reportValidity(){return this._validationMessageElement&&(this._internals.validity.valid?(this._validationMessageElement.textContent="",this._validationMessageElement.style.display="none"):(this._validationMessageElement.textContent=this._internals.validationMessage,this._validationMessageElement.style.display="block")),this._internals.validity.valid}_registerChoiceElement(s){s.stopPropagation();let a=s.target;a.disabled=this.disabled,this._choiceElements.push(a),this._setInputType(a)}_unregisterChoiceElement(s){s.stopPropagation();let a=s.target;this._choiceElements=this._choiceElements.filter(o=>o!==a)}_determineInputType(){this._choiceElements.forEach(s=>{this._setInputType(s)})}_setInputType(s){this._internals.ariaLabel=this.maxChoices===1?"radio-group":"checkbox-group";let a=this.maxChoices===1?"radio":"checkbox";s.internals.role=a,s.internals.states.delete(a==="radio"?"checkbox":"radio"),s.internals.states.add(a)}_choiceElementSelectedHandler(s){this._toggleChoiceChecked(s.target),this.maxChoices===1&&this._choiceElements.forEach(a=>{a.identifier!==s.detail.identifier&&this._setChoiceChecked(a,!1)}),this._handleChoiceSelection()}_setChoiceChecked(s,a){s.internals?.states&&(a?(s.internals.states.add("--checked"),s.internals.ariaChecked="true"):(s.internals.states.delete("--checked"),s.internals.ariaChecked="false"))}_getChoiceChecked(s){return s.internals.states.has("--checked")}_toggleChoiceChecked(s){let a=this._getChoiceChecked(s);this._setChoiceChecked(s,!a)}_handleChoiceSelection(){let a=this._choiceElements.filter(o=>this._getChoiceChecked(o)).map(o=>o.identifier);this.value=this.maxChoices===1?a[0]||"":a,this.validate(),this.saveResponse(this._value)}_updateChoiceSelection(){let s=Array.isArray(this._value)?this._value:[this._value];this._choiceElements.forEach(a=>{let o=s.includes(a.identifier);this._setChoiceChecked(a,o)})}}return n([Ye("#validationMessage")],e.prototype,"_validationMessageElement",2),n([d({type:Number,attribute:"min-choices"})],e.prototype,"minChoices",2),n([d({type:Number,attribute:"max-choices"})],e.prototype,"maxChoices",2),n([w("maxChoices",{waitUntilFirstUpdate:!0})],e.prototype,"_handleMaxChoicesChange",1),n([w("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"_handleDisabledChange",2),n([w("readonly",{waitUntilFirstUpdate:!0})],e.prototype,"_handleReadonlyChange",2),e};var je=(c,i)=>{class e extends c{constructor(){super(...arguments);this.shuffle="false"}connectedCallback(){super.connectedCallback(),this._applyShuffle()}updated(s){s.has("shuffle")&&this._applyShuffle()}_applyShuffle(){this.shuffle==="true"?this._shuffleChoices():this._resetShuffleChoices()}_shuffleChoices(){let s=Array.from(this.querySelectorAll(i)),a=s.filter(g=>g.hasAttribute("fixed")),o=s.filter(g=>!g.hasAttribute("fixed"));if(o.length<=1){console.warn("Shuffling is not possible with fewer than 2 non-fixed elements.");return}let l=[...o],p=!1,u=0;for(;!p&&u<10;){u++;for(let g=o.length-1;g>0;g--){let y=Math.floor(Math.random()*(g+1));[o[g],o[y]]=[o[y],o[g]]}p=!o.every((g,y)=>g===l[y])}p||console.warn("Failed to shuffle the choices after multiple attempts.");let f=1;[...a,...o].forEach(g=>{g.style.setProperty("order",String(f++))})}_resetShuffleChoices(){this.querySelectorAll(i).forEach(s=>{s.style.setProperty("order","initial")})}}return n([d({type:String,reflect:!0})],e.prototype,"shuffle",2),e};var zt=(c,i)=>{class e extends c{constructor(){super(...arguments);this._classes=[];this._allLabels=["qti-labels-decimal","qti-labels-lower-alpha","qti-labels-upper-alpha"];this._allLabelSuffixes=["qti-labels-suffix-period","qti-labels-suffix-parenthesis"]}set class(s){s&&(this._classes=s.split(" "),this._addLabels())}get class(){return this._classes?.join(" ")||""}updated(s){super.updated(s),s.has("shuffle")&&this._addLabels()}_addLabels(){let s=this._classes.some(o=>this._allLabels.includes(o)||this._allLabelSuffixes.includes(o)),a=o=>!isNaN(+o);if(s){let l=Array.from(this.querySelectorAll("qti-simple-choice")).map(p=>p).map((p,u)=>({el:p,order:a(p.style.order)?+p.style.order:u+1})).sort((p,u)=>p.order-u.order).map(p=>p.el);for(let p=0;p<l.length;p++)l[p].marker=this._getLabel(p+1)}}_getLabel(s){let a=this._classes.filter(p=>this._allLabels.includes(p)).pop(),o=this._classes.filter(p=>this._allLabelSuffixes.includes(p)).pop();!a&&o&&(a="qti-labels-upper-alpha");let l="";switch(a){case"qti-labels-decimal":l=`${s}`;break;case"qti-labels-lower-alpha":l=`${String.fromCharCode(97+s-1)}`;break;case"qti-labels-upper-alpha":l=`${String.fromCharCode(65+s-1)}`;break}return o==="qti-labels-suffix-period"?l+=".":o==="qti-labels-suffix-parenthesis"&&(l+=")"),l}}return n([d({type:String,reflect:!0})],e.prototype,"class",1),e};var Yt=b`
115
115
  [part='slot'] {
116
116
  display: flex;
117
117
  flex-direction: column;
@@ -149,7 +149,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
149
149
  :host([orientation='horizontal']) [part='slot'] {
150
150
  flex-direction: row;
151
151
  }
152
- `;var ue=class extends zt(je(K(E,"qti-simple-choice"),"qti-simple-choice"),"qti-simple-choice"){constructor(){super(),this._internals.role="group"}render(){return u`
152
+ `;var ue=class extends zt(je(Z(E,"qti-simple-choice"),"qti-simple-choice"),"qti-simple-choice"){constructor(){super(),this._internals.role="group"}render(){return h`
153
153
  <slot part="prompt" name="prompt"></slot><slot part="slot"></slot>
154
154
  <div part="message" role="alert" id="validationMessage"></div>
155
155
  `}};ue.styles=Yt,n([d({type:String})],ue.prototype,"orientation",2),ue=n([m("qti-choice-interaction")],ue);var z=class extends E{constructor(){super();this._errorMessage=null;this.handlePostMessage=this.handlePostMessage.bind(this)}connectedCallback(){super.connectedCallback();let e=this.data.startsWith("http")?this.data:Ce(this.baseItemUrl+"/"+this.data);fetch(e).then(t=>t.json()).then(t=>{this.manifest=t,this.setupCES()}).catch(t=>{this._errorMessage=t})}setupCES(){let e=this.shadowRoot.querySelector("#pciContainer"),t=e.contentDocument;window.addEventListener("message",this.handlePostMessage),t.open(),t.write(`
@@ -160,7 +160,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
160
160
  </head>
161
161
  <body></body>
162
162
  </html>
163
- `),t.close()}getIFrames(){let e=this.shadowRoot.querySelectorAll("iframe"),t=this.querySelectorAll("iframe"),r=[...e,...t];for(let o of r){let a=o.src;if(new URL(a,window.location.href).origin===window.location.origin)try{let l=o.contentDocument||o.contentWindow.document;l&&this.getInnerIFrames(l,r)}catch(l){console.error("Error accessing nested iframe:",l)}}return r.forEach((o,a)=>{r.indexOf(o)!==a&&r.splice(a,1)}),r}getInnerIFrames(e,t=[]){return e.querySelectorAll("iframe").forEach(o=>{t.push(o);let a=o.src;if(new URL(a,window.location.href).origin===window.location.origin)try{let l=o.contentDocument||o.contentWindow.document;this.getInnerIFrames(l,t)}catch(l){console.error("Error accessing nested iframe:",l)}else console.warn("Skipped cross-origin iframe:",a)}),t}postToWindowAndIframes(e,t){window.postMessage({type:e,data:t},"*");let r=this.getIFrames();for(let o of r)o.contentWindow&&o.contentWindow.postMessage({type:e,data:t},"*")}handlePostMessage(e){let{type:t,data:r}=e.data;switch(t){case"setResponse":this.rawResponse=r,this.saveResponse(r);break;case"getResponse":{this.postToWindowAndIframes("responseData",this.rawResponse);break}case"getMedia":{let o=this.manifest.media.map(a=>a.startsWith("http")?a:Ce(this.baseRefUrl+"/"+a));this.postToWindowAndIframes("mediaData",o);break}case"setStageHeight":console.log("setStageHeight not implemented");break}}validate(){return this.rawResponse!==""}get value(){return this.rawResponse}set value(e){if(typeof e=="string")this.rawResponse=e,this.saveResponse(e);else throw new Error("Value must be a string")}disconnectedCallback(){window.removeEventListener("message",this.handlePostMessage),super.disconnectedCallback()}render(){return u`<iframe
163
+ `),t.close()}getIFrames(){let e=this.shadowRoot.querySelectorAll("iframe"),t=this.querySelectorAll("iframe"),r=[...e,...t];for(let s of r){let a=s.src;if(new URL(a,window.location.href).origin===window.location.origin)try{let l=s.contentDocument||s.contentWindow.document;l&&this.getInnerIFrames(l,r)}catch(l){console.error("Error accessing nested iframe:",l)}}return r.forEach((s,a)=>{r.indexOf(s)!==a&&r.splice(a,1)}),r}getInnerIFrames(e,t=[]){return e.querySelectorAll("iframe").forEach(s=>{t.push(s);let a=s.src;if(new URL(a,window.location.href).origin===window.location.origin)try{let l=s.contentDocument||s.contentWindow.document;this.getInnerIFrames(l,t)}catch(l){console.error("Error accessing nested iframe:",l)}else console.warn("Skipped cross-origin iframe:",a)}),t}postToWindowAndIframes(e,t){window.postMessage({type:e,data:t},"*");let r=this.getIFrames();for(let s of r)s.contentWindow&&s.contentWindow.postMessage({type:e,data:t},"*")}handlePostMessage(e){let{type:t,data:r}=e.data;switch(t){case"setResponse":this.rawResponse=r,this.saveResponse(r);break;case"getResponse":{this.postToWindowAndIframes("responseData",this.rawResponse);break}case"getMedia":{let s=this.manifest.media.map(a=>a.startsWith("http")?a:Ce(this.baseRefUrl+"/"+a));this.postToWindowAndIframes("mediaData",s);break}case"setStageHeight":console.log("setStageHeight not implemented");break}}validate(){return this.rawResponse!==""}get value(){return this.rawResponse}set value(e){if(typeof e=="string")this.rawResponse=e,this.saveResponse(e);else throw new Error("Value must be a string")}disconnectedCallback(){window.removeEventListener("message",this.handlePostMessage),super.disconnectedCallback()}render(){return h`<iframe
164
164
  width=${this.getAttribute("width")}
165
165
  height=${this.getAttribute("height")}
166
166
  frameborder="0"
@@ -168,10 +168,10 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
168
168
  id="pciContainer"
169
169
  >
170
170
  </iframe>
171
- ${this._errorMessage&&u`<div style="color:red">
171
+ ${this._errorMessage&&h`<div style="color:red">
172
172
  <h1>Error</h1>
173
173
  ${this._errorMessage}
174
- </div>`}`}};n([d({type:String,attribute:"data"})],z.prototype,"data",2),n([d({type:String,attribute:"data-base-item"})],z.prototype,"baseItemUrl",2),n([d({type:String,attribute:"data-base-ref"})],z.prototype,"baseRefUrl",2),n([d({type:String,attribute:"id"})],z.prototype,"id",2),n([C()],z.prototype,"_errorMessage",2),z=n([m("qti-custom-interaction")],z);var J=class extends v{constructor(){super(...arguments);this.disabled=!1;this.countAttempt=null;this.title="end attempt"}render(){return u`<button ?disabled=${this.disabled} part="button" @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.dispatchEvent(new CustomEvent("end-attempt",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,countAttempt:this.countAttempt==="true"}}))}};n([d({type:String,attribute:"response-identifier"})],J.prototype,"responseIdentifier",2),n([d({reflect:!0,type:Boolean})],J.prototype,"disabled",2),n([d({type:String,attribute:"count-attempt"})],J.prototype,"countAttempt",2),n([d({type:String})],J.prototype,"title",2),J=n([m("qti-end-attempt-interaction")],J);var Z=c=>c??R;var Ut=g`
174
+ </div>`}`}};n([d({type:String,attribute:"data"})],z.prototype,"data",2),n([d({type:String,attribute:"data-base-item"})],z.prototype,"baseItemUrl",2),n([d({type:String,attribute:"data-base-ref"})],z.prototype,"baseRefUrl",2),n([d({type:String,attribute:"id"})],z.prototype,"id",2),n([C()],z.prototype,"_errorMessage",2),z=n([m("qti-custom-interaction")],z);var G=class extends v{constructor(){super(...arguments);this.disabled=!1;this.countAttempt=null;this.title="end attempt"}render(){return h`<button ?disabled=${this.disabled} part="button" @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.dispatchEvent(new CustomEvent("end-attempt",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,countAttempt:this.countAttempt==="true"}}))}};n([d({type:String,attribute:"response-identifier"})],G.prototype,"responseIdentifier",2),n([d({reflect:!0,type:Boolean})],G.prototype,"disabled",2),n([d({type:String,attribute:"count-attempt"})],G.prototype,"countAttempt",2),n([d({type:String})],G.prototype,"title",2),G=n([m("qti-end-attempt-interaction")],G);var Q=c=>c??R;var Ut=b`
175
175
  /* PK: display host as block, else design will be collapsed */
176
176
  :host {
177
177
  display: block;
@@ -182,7 +182,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
182
182
  height: 100%;
183
183
  border: 0;
184
184
  }
185
- `;var k=class extends E{constructor(){super(...arguments);this._rows=5;this._value=""}handleclassNamesChange(e,t){let r=t.split(" "),o=!1;if(r.forEach(a=>{if(a.startsWith("qti-height-lines-")){let i=a.replace("qti-height-lines-","");this._rows=parseInt(i),o=!0}}),!o&&this.expectedLength){let a=Math.ceil(this.expectedLength/50);this._rows=a}}get value(){return this._value||null}set value(e){if(typeof e=="string"||e===null){this._value=e||"";let t=new FormData;t.append(this.responseIdentifier,this._value),this._internals.setFormValue(t),this.validate()}else throw new Error("Value must be a string")}validate(){let e=this.shadowRoot.querySelector("textarea");if(!e)return!1;if(this.patternMask&&this.dataPatternmaskMessage){this._internals.setValidity({}),e.setCustomValidity("");let t=this.patternMask.startsWith("^")&&this.patternMask.endsWith("$")?this.patternMask:`^${this.patternMask}$`,r=new RegExp(t);e.checkValidity()&&r.test(e.value)||(this._internals.setValidity({customError:!0},this.dataPatternmaskMessage),e.setCustomValidity(this.dataPatternmaskMessage))}else{let t=e.checkValidity();this._internals.setValidity(t?{}:{customError:!1})}return this._value!==""&&e.checkValidity()}reportValidity(){let e=this.shadowRoot.querySelector("textarea");if(!e)return!1;let t=this.validate();return t||e.reportValidity(),t}render(){return u`<slot name="prompt"></slot
185
+ `;var k=class extends E{constructor(){super(...arguments);this._rows=5;this._value=""}handleclassNamesChange(e,t){let r=t.split(" "),s=!1;if(r.forEach(a=>{if(a.startsWith("qti-height-lines-")){let o=a.replace("qti-height-lines-","");this._rows=parseInt(o),s=!0}}),!s&&this.expectedLength){let a=Math.ceil(this.expectedLength/50);this._rows=a}}get value(){return this._value||null}set value(e){if(typeof e=="string"||e===null){this._value=e||"";let t=new FormData;t.append(this.responseIdentifier,this._value),this._internals.setFormValue(t),this.validate()}else throw new Error("Value must be a string")}validate(){let e=this.shadowRoot.querySelector("textarea");if(!e)return!1;if(this.patternMask&&this.dataPatternmaskMessage){this._internals.setValidity({}),e.setCustomValidity("");let t=this.patternMask.startsWith("^")&&this.patternMask.endsWith("$")?this.patternMask:`^${this.patternMask}$`,r=new RegExp(t);e.checkValidity()&&r.test(e.value)||(this._internals.setValidity({customError:!0},this.dataPatternmaskMessage),e.setCustomValidity(this.dataPatternmaskMessage))}else{let t=e.checkValidity();this._internals.setValidity(t?{}:{customError:!1})}return this._value!==""&&e.checkValidity()}reportValidity(){let e=this.shadowRoot.querySelector("textarea");if(!e)return!1;let t=this.validate();return t||e.reportValidity(),t}render(){return h`<slot name="prompt"></slot
186
186
  ><textarea
187
187
  part="textarea"
188
188
  name="${this.responseIdentifier}"
@@ -193,17 +193,17 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
193
193
  @keyup="${this.textChanged}"
194
194
  @change="${this.textChanged}"
195
195
  @blur="${e=>{this.reportValidity()}}"
196
- placeholder="${Z(this.placeholderText?this.placeholderText:void 0)}"
196
+ placeholder="${Q(this.placeholderText?this.placeholderText:void 0)}"
197
197
  rows="${this._rows}"
198
198
  ?disabled="${this.disabled}"
199
199
  ?readonly="${this.readonly}"
200
200
  .value=${this._value}
201
- ></textarea>`}textChanged(e){if(this.disabled||this.readonly)return;let t=e.target;this.setEmptyAttribute(t.value),this._value!==t.value&&(this.value=t.value,this.saveResponse(t.value))}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};k.styles=Ut,n([C()],k.prototype,"_rows",2),n([d({type:Number,attribute:"expected-length"})],k.prototype,"expectedLength",2),n([d({type:String,attribute:"pattern-mask"})],k.prototype,"patternMask",2),n([d({type:String,attribute:"placeholder-text"})],k.prototype,"placeholderText",2),n([d({type:String,attribute:"data-patternmask-message"})],k.prototype,"dataPatternmaskMessage",2),n([C()],k.prototype,"_value",2),n([d({type:String,attribute:"class"})],k.prototype,"classNames",2),n([w("classNames")],k.prototype,"handleclassNamesChange",1),k=n([m("qti-extended-text-interaction")],k);var he=class extends v{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","drags")}};he.styles=g`
201
+ ></textarea>`}textChanged(e){if(this.disabled||this.readonly)return;let t=e.target;this.setEmptyAttribute(t.value),this._value!==t.value&&(this.value=t.value,this.saveResponse(t.value))}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};k.styles=Ut,n([C()],k.prototype,"_rows",2),n([d({type:Number,attribute:"expected-length"})],k.prototype,"expectedLength",2),n([d({type:String,attribute:"pattern-mask"})],k.prototype,"patternMask",2),n([d({type:String,attribute:"placeholder-text"})],k.prototype,"placeholderText",2),n([d({type:String,attribute:"data-patternmask-message"})],k.prototype,"dataPatternmaskMessage",2),n([C()],k.prototype,"_value",2),n([d({type:String,attribute:"class"})],k.prototype,"classNames",2),n([w("classNames")],k.prototype,"handleclassNamesChange",1),k=n([m("qti-extended-text-interaction")],k);var he=class extends v{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","drags")}};he.styles=b`
202
202
  :host {
203
203
  display: flex;
204
204
  user-select: none;
205
205
  }
206
- `,n([d({type:Number,reflect:!0})],he.prototype,"tabindex",2),he=n([m("qti-gap-img")],he);var Bt=g`
206
+ `,n([d({type:Number,reflect:!0})],he.prototype,"tabindex",2),he=n([m("qti-gap-img")],he);var Bt=b`
207
207
  :host {
208
208
  display: flex;
209
209
  align-items: flex-start;
@@ -237,20 +237,20 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
237
237
  border-radius: 0.3rem;
238
238
  gap: 0.5rem;
239
239
  }
240
- `;var Se=class extends V(E,"qti-gap-text","qti-gap","slot[part='drags']"){render(){return u`<slot name="prompt"> </slot>
240
+ `;var Se=class extends V(E,"qti-gap-text","qti-gap","slot[part='drags']"){render(){return h`<slot name="prompt"> </slot>
241
241
  <slot part="drags" name="drags"></slot>
242
242
  <slot part="drops"></slot>
243
- <div role="alert" id="validationMessage"></div>`}set correctResponse(s){let e=[],t=Array.isArray(s)?s:[s];t&&(e=t.map(o=>{let a=o.split(" ");return{text:a[0],gap:a[1]}})),this.querySelectorAll("qti-gap").forEach(o=>{let a=o.getAttribute("identifier"),i=e.find(p=>p.gap===a)?.text,l=this.querySelector(`qti-gap-text[identifier="${i}"]`)?.textContent.trim();if(i&&l){if(!o.nextElementSibling?.classList.contains("correct-option")){let p=document.createElement("span");p.classList.add("correct-option"),p.textContent=l,o.insertAdjacentElement("afterend",p)}}else o.nextElementSibling?.classList.contains("correct-option")&&o.nextElementSibling.remove()})}};Se.styles=Bt,Se=n([m("qti-gap-match-interaction")],Se);var Xt={toAttribute:c=>c?"true":"false",fromAttribute:c=>c==="true"};function N(c,s){class e extends c{constructor(...o){super(...o);this.identifier="";this.tabIndex=0;this.disabled=!1;this.readonly=!1;this.internals=this.attachInternals()}handleDisabledChange(o,a){this.tabIndex=a?-1:0,a&&this.blur()}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`register-${s}`,{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`unregister-${s}`,{bubbles:!0,composed:!0}))}_onKeyUp(o){o.altKey||o.code==="Space"&&(o.preventDefault(),this._activate())}_onClick(){this.disabled||this.readonly||(this.focus(),this._activate())}_activate(){this.disabled||this.readonly||this.dispatchEvent(new CustomEvent(`activate-${s}`,{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}render(){return u`<slot></slot>`}}return n([d({type:String})],e.prototype,"identifier",2),n([d({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",2),n([d({type:Boolean,reflect:!0,attribute:"aria-disabled",converter:Xt})],e.prototype,"disabled",2),n([d({type:Boolean,reflect:!0,attribute:"aria-readonly",converter:Xt})],e.prototype,"readonly",2),n([w("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",1),e}var me=class extends N(v,"qti-gap-text"){constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","drags")}render(){return u`<slot></slot>`}};me.styles=g`
243
+ <div role="alert" id="validationMessage"></div>`}set correctResponse(i){let e=[],t=Array.isArray(i)?i:[i];t&&(e=t.map(s=>{let a=s.split(" ");return{text:a[0],gap:a[1]}})),this.querySelectorAll("qti-gap").forEach(s=>{let a=s.getAttribute("identifier"),o=e.find(p=>p.gap===a)?.text,l=this.querySelector(`qti-gap-text[identifier="${o}"]`)?.textContent.trim();if(o&&l){if(!s.nextElementSibling?.classList.contains("correct-option")){let p=document.createElement("span");p.classList.add("correct-option"),p.textContent=l,s.insertAdjacentElement("afterend",p)}}else s.nextElementSibling?.classList.contains("correct-option")&&s.nextElementSibling.remove()})}};Se.styles=Bt,Se=n([m("qti-gap-match-interaction")],Se);var Xt={toAttribute:c=>c?"true":"false",fromAttribute:c=>c==="true"};function $(c,i){class e extends c{constructor(...s){super(...s);this.identifier="";this.tabIndex=0;this.disabled=!1;this.readonly=!1;this.internals=this.attachInternals()}handleDisabledChange(s,a){this.tabIndex=a?-1:0,a&&this.blur()}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`register-${i}`,{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`unregister-${i}`,{bubbles:!0,composed:!0}))}_onKeyUp(s){s.altKey||s.code==="Space"&&(s.preventDefault(),this._activate())}_onClick(){this.disabled||this.readonly||(this.focus(),this._activate())}_activate(){this.disabled||this.readonly||this.dispatchEvent(new CustomEvent(`activate-${i}`,{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}render(){return h`<slot></slot>`}}return n([d({type:String})],e.prototype,"identifier",2),n([d({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",2),n([d({type:Boolean,reflect:!0,attribute:"aria-disabled",converter:Xt})],e.prototype,"disabled",2),n([d({type:Boolean,reflect:!0,attribute:"aria-readonly",converter:Xt})],e.prototype,"readonly",2),n([w("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",1),e}var me=class extends $(v,"qti-gap-text"){constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","drags")}render(){return h`<slot></slot>`}};me.styles=b`
244
244
  :host {
245
245
  display: inline-flex;
246
246
  user-select: none;
247
247
  }
248
- `,n([d({type:Number,reflect:!0})],me.prototype,"tabindex",2),me=n([m("qti-gap-text")],me);var fe=class extends v{constructor(){super(...arguments);this.tabindex=0}render(){return u` <slot name="drags"></slot>`}};fe.styles=g`
248
+ `,n([d({type:Number,reflect:!0})],me.prototype,"tabindex",2),me=n([m("qti-gap-text")],me);var fe=class extends v{constructor(){super(...arguments);this.tabindex=0}render(){return h` <slot name="drags"></slot>`}};fe.styles=b`
249
249
  :host {
250
250
  display: flex;
251
251
  user-select: none;
252
252
  }
253
- `,n([d({type:Number,reflect:!0})],fe.prototype,"tabindex",2),fe=n([m("qti-gap")],fe);var jt=(c,s,e)=>{let t=new Map;for(let r=s;r<=e;r++)t.set(c[r],r);return t},We=j(class extends le{constructor(c){if(super(c),c.type!==ae.CHILD)throw Error("repeat() can only be used in text expressions")}dt(c,s,e){let t;e===void 0?e=s:s!==void 0&&(t=s);let r=[],o=[],a=0;for(let i of c)r[a]=t?t(i,a):a,o[a]=e(i,a),a++;return{values:o,keys:r}}render(c,s,e){return this.dt(c,s,e).values}update(c,[s,e,t]){let r=It(c),{values:o,keys:a}=this.dt(s,e,t);if(!Array.isArray(r))return this.ut=a,o;let i=this.ut??(this.ut=[]),l=[],p,h,f=0,b=r.length-1,y=0,T=o.length-1;for(;f<=b&&y<=T;)if(r[f]===null)f++;else if(r[b]===null)b--;else if(i[f]===a[y])l[y]=W(r[f],o[y]),f++,y++;else if(i[b]===a[T])l[T]=W(r[b],o[T]),b--,T--;else if(i[f]===a[T])l[T]=W(r[f],o[T]),ce(c,l[T+1],r[f]),f++,T--;else if(i[b]===a[y])l[y]=W(r[b],o[y]),ce(c,r[f],r[b]),b--,y++;else if(p===void 0&&(p=jt(a,y,T),h=jt(i,f,b)),p.has(i[f]))if(p.has(i[b])){let x=h.get(a[y]),ie=x!==void 0?r[x]:null;if(ie===null){let M=ce(c,r[f]);W(M,o[y]),l[y]=M}else l[y]=W(ie,o[y]),ce(c,r[f],ie),r[x]=null;y++}else Be(r[b]),b--;else Be(r[f]),f++;for(;y<=T;){let x=ce(c,l[T+1]);W(x,o[y]),l[y++]=x}for(;f<=b;){let x=r[f++];x!==null&&Be(x)}return this.ut=a,$t(c,l),ne}});function ge(c,s,e,t){switch(c){case"circle":{let[r,o,a]=s,i=r/e.width*100,l=o/e.height*100,p=a/e.width*100;t.style.left=i-p+"%",t.style.top=l-p+"%",t.style.width=t.style.height=4*p+"px",t.style.borderRadius="9999px"}break;case"rect":{let[r,o,a,i]=s,l=r/e.width*100,p=o/e.height*100,h=a/e.width*100,f=i/e.height*100;t.style.left=l+"%",t.style.top=p+"%",t.style.width=h-l+"%",t.style.height=f-p+"%"}break;case"poly":{let r=s.reduce((x,ie,M,oe)=>{if(M%2===1){let pr=x.pop();x[x.length]={x:pr,y:oe[M]}}else x.push(ie);return x},[]),o=Math.min(...r.map(x=>x.x)),a=Math.max(...r.map(x=>x.x)),i=Math.min(...r.map(x=>x.y)),l=Math.max(...r.map(x=>x.y)),p=o/e.width*100,h=i/e.height*100,f=a/e.width*100,b=l/e.height*100;t.style.left=o/e.width*100+"%",t.style.top=i/e.height*100+"%",t.style.width=f-p+"%",t.style.height=b-h+"%";let T=r.map(x=>({x:(x.x-o)/(a-o)*100,y:(x.y-i)/(l-i)*100})).map(x=>Math.round(x.x)+"% "+Math.round(x.y)+"%").join(",");t.style.clipPath=`polygon(${T})`}break;default:break}}var Wt=g`
253
+ `,n([d({type:Number,reflect:!0})],fe.prototype,"tabindex",2),fe=n([m("qti-gap")],fe);var jt=(c,i,e)=>{let t=new Map;for(let r=i;r<=e;r++)t.set(c[r],r);return t},We=K(class extends le{constructor(c){if(super(c),c.type!==ae.CHILD)throw Error("repeat() can only be used in text expressions")}dt(c,i,e){let t;e===void 0?e=i:i!==void 0&&(t=i);let r=[],s=[],a=0;for(let o of c)r[a]=t?t(o,a):a,s[a]=e(o,a),a++;return{values:s,keys:r}}render(c,i,e){return this.dt(c,i,e).values}update(c,[i,e,t]){let r=Ot(c),{values:s,keys:a}=this.dt(i,e,t);if(!Array.isArray(r))return this.ut=a,s;let o=this.ut??(this.ut=[]),l=[],p,u,f=0,g=r.length-1,y=0,T=s.length-1;for(;f<=g&&y<=T;)if(r[f]===null)f++;else if(r[g]===null)g--;else if(o[f]===a[y])l[y]=J(r[f],s[y]),f++,y++;else if(o[g]===a[T])l[T]=J(r[g],s[T]),g--,T--;else if(o[f]===a[T])l[T]=J(r[f],s[T]),ce(c,l[T+1],r[f]),f++,T--;else if(o[g]===a[y])l[y]=J(r[g],s[y]),ce(c,r[f],r[g]),g--,y++;else if(p===void 0&&(p=jt(a,y,T),u=jt(o,f,g)),p.has(o[f]))if(p.has(o[g])){let x=u.get(a[y]),j=x!==void 0?r[x]:null;if(j===null){let M=ce(c,r[f]);J(M,s[y]),l[y]=M}else l[y]=J(j,s[y]),ce(c,r[f],j),r[x]=null;y++}else Be(r[g]),g--;else Be(r[f]),f++;for(;y<=T;){let x=ce(c,l[T+1]);J(x,s[y]),l[y++]=x}for(;f<=g;){let x=r[f++];x!==null&&Be(x)}return this.ut=a,Nt(c,l),ne}});function ge(c,i,e,t){switch(c){case"circle":{let[r,s,a]=i,o=r/e.width*100,l=s/e.height*100,p=a/e.width*100;t.style.left=o-p+"%",t.style.top=l-p+"%",t.style.width=t.style.height=4*p+"px",t.style.borderRadius="9999px"}break;case"rect":{let[r,s,a,o]=i,l=r/e.width*100,p=s/e.height*100,u=a/e.width*100,f=o/e.height*100;t.style.left=l+"%",t.style.top=p+"%",t.style.width=u-l+"%",t.style.height=f-p+"%"}break;case"ellipse":{let[r,s,a,o]=i,l=r/e.width*100,p=s/e.height*100,u=a/e.width*100,f=o/e.height*100;t.style.left=l-u+"%",t.style.top=p-f+"%",t.style.width=2*u+"%",t.style.height=2*f+"%",t.style.borderRadius="50%"}break;case"poly":{let r=[];for(let x=0;x<i.length;x+=2)r.push({x:i[x],y:i[x+1]});let s=Math.min(...r.map(x=>x.x)),a=Math.max(...r.map(x=>x.x)),o=Math.min(...r.map(x=>x.y)),l=Math.max(...r.map(x=>x.y)),p=s/e.width*100,u=o/e.height*100,f=a/e.width*100,g=l/e.height*100;t.style.left=p+"%",t.style.top=u+"%",t.style.width=f-p+"%",t.style.height=g-u+"%";let T=r.map(x=>({x:(x.x-s)/(a-s)*100,y:(x.y-o)/(l-o)*100})).map(x=>`${x.x}% ${x.y}%`).join(",");t.style.clipPath=`polygon(${T})`}break;default:console.error(`Unsupported shape: ${c}`);break}}var Wt=b`
254
254
  slot:not([name='prompt']) {
255
255
  // position: relative; /* qti-hotspot-choice relative to the slot */
256
256
  display: block;
@@ -273,11 +273,11 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
273
273
  top: 0px;
274
274
  left: 0px;
275
275
  }
276
- `;var Y=class extends E{constructor(){super();this.startPoint=null;this.endPoint=null;this._lines=[];this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}reset(){this._lines=[]}validate(){return this._lines.length>0}set value(e){Array.isArray(e)&&(this._lines=e)}get value(){return this._lines}render(){return u`<slot name="prompt"></slot>
276
+ `;var Y=class extends E{constructor(){super();this.startPoint=null;this.endPoint=null;this._lines=[];this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}reset(){this._lines=[]}validate(){return this._lines.length>0}set value(e){Array.isArray(e)&&(this._lines=e)}get value(){return this._lines}render(){return h`<slot name="prompt"></slot>
277
277
  <line-container>
278
278
  <svg
279
- width=${Z(this.grImage[0]?.width)}
280
- height=${Z(this.grImage[0]?.height)}
279
+ width=${Q(this.grImage[0]?.width)}
280
+ height=${Q(this.grImage[0]?.height)}
281
281
  viewbox="0 0 ${this.grImage[0]?.width} ${this.grImage[0]?.height}"
282
282
  >
283
283
  ${We(this._lines,e=>e,(e,t)=>at`
@@ -289,7 +289,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
289
289
  y2=${parseInt(this.querySelector("[identifier="+e.split(" ")[1]+"]").style.top)}
290
290
  stroke="red"
291
291
  stroke-width="3"
292
- @click=${r=>{r.stopPropagation(),this._lines=this._lines.filter((o,a)=>a!==t),this.saveResponse(this._lines)}}
292
+ @click=${r=>{r.stopPropagation(),this._lines=this._lines.filter((s,a)=>a!==t),this.saveResponse(this._lines)}}
293
293
  />
294
294
  `)}
295
295
  ${this.startPoint&&at`<line
@@ -304,7 +304,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
304
304
  </svg>
305
305
  <slot></slot>
306
306
  </line-container>
307
- <div role="alert" id="validationMessage"></div>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),a=r.getAttribute("shape"),i=o.split(",").map(l=>parseInt(l));ge(a,i,t,r)}firstUpdated(e){super.firstUpdated(e),this.hotspots=this.querySelectorAll("qti-associable-hotspot"),document.addEventListener("mousemove",t=>{this.mouseCoord={x:t.clientX-this.grImage[0].getBoundingClientRect().left,y:t.clientY-this.grImage[0].getBoundingClientRect().top}}),this.hotspots.forEach(t=>{t.style.left=t.getAttribute("coords").split(",")[0]+"px",t.style.top=t.getAttribute("coords").split(",")[1]+"px",t.addEventListener("click",r=>{this.startPoint?this.endPoint||(this.endPoint=r.target,this._lines=[...this._lines,this.startPoint.getAttribute("identifier")+" "+this.endPoint.getAttribute("identifier")],this.saveResponse(this._lines),this.startPoint=null,this.endPoint=null):(this.startPoint=r.target,this.startCoord={x:this.startPoint.getAttribute("coords").split(",")[0],y:this.startPoint.getAttribute("coords").split(",")[1]})})})}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};Y.styles=Wt,n([C()],Y.prototype,"_lines",2),n([C()],Y.prototype,"startCoord",2),n([C()],Y.prototype,"mouseCoord",2),n([Ht({selector:"img"})],Y.prototype,"grImage",2),Y=n([m("qti-graphic-associate-interaction")],Y);var Kt=g`
307
+ <div role="alert" id="validationMessage"></div>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,s=r.getAttribute("coords"),a=r.getAttribute("shape"),o=s.split(",").map(l=>parseInt(l));ge(a,o,t,r)}firstUpdated(e){super.firstUpdated(e),this.hotspots=this.querySelectorAll("qti-associable-hotspot"),document.addEventListener("mousemove",t=>{this.mouseCoord={x:t.clientX-this.grImage[0].getBoundingClientRect().left,y:t.clientY-this.grImage[0].getBoundingClientRect().top}}),this.hotspots.forEach(t=>{t.style.left=t.getAttribute("coords").split(",")[0]+"px",t.style.top=t.getAttribute("coords").split(",")[1]+"px",t.addEventListener("click",r=>{this.startPoint?this.endPoint||(this.endPoint=r.target,this._lines=[...this._lines,this.startPoint.getAttribute("identifier")+" "+this.endPoint.getAttribute("identifier")],this.saveResponse(this._lines),this.startPoint=null,this.endPoint=null):(this.startPoint=r.target,this.startCoord={x:this.startPoint.getAttribute("coords").split(",")[0],y:this.startPoint.getAttribute("coords").split(",")[1]})})})}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};Y.styles=Wt,n([C()],Y.prototype,"_lines",2),n([C()],Y.prototype,"startCoord",2),n([C()],Y.prototype,"mouseCoord",2),n([Ht({selector:"img"})],Y.prototype,"grImage",2),Y=n([m("qti-graphic-associate-interaction")],Y);var Kt=b`
308
308
  :host {
309
309
  display: flex;
310
310
  align-items: flex-start;
@@ -358,10 +358,10 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
358
358
  user-select: none;
359
359
  pointer-events: none;
360
360
  }
361
- `;var _e=class extends V(E,"qti-gap-img, qti-gap-text","qti-associable-hotspot","slot[part='drags']"){render(){return u` <slot name="prompt"></slot>
361
+ `;var _e=class extends V(E,"qti-gap-img, qti-gap-text","qti-associable-hotspot","slot[part='drags']"){render(){return h` <slot name="prompt"></slot>
362
362
  <slot part="image"></slot>
363
363
  <slot part="drags" name="drags" class="hover-border"></slot>
364
- <div role="alert" id="validationMessage"></div>`}positionHotspotOnRegister(s){let e=s.target,t=e.getAttribute("coords"),r=e.getAttribute("shape"),o=t.split(",").map(a=>parseInt(a));switch(r){case"circle":{let[a,i,l]=o;e.style.left=a-l+"px",e.style.top=i-l+"px",e.style.width=e.style.height=2*l+"px"}break;case"rect":{let[a,i,l,p]=o;e.style.left=a+"px",e.style.top=i+"px",e.style.width=l-a+"px",e.style.height=p-i+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};_e.styles=Kt,_e=n([m("qti-graphic-gap-match-interaction")],_e);var Jt=g`
364
+ <div role="alert" id="validationMessage"></div>`}positionHotspotOnRegister(i){let e=i.target,t=e.getAttribute("coords"),r=e.getAttribute("shape"),s=t.split(",").map(a=>parseInt(a));switch(r){case"circle":{let[a,o,l]=s;e.style.left=a-l+"px",e.style.top=o-l+"px",e.style.width=e.style.height=2*l+"px"}break;case"rect":{let[a,o,l,p]=s;e.style.left=a+"px",e.style.top=o+"px",e.style.width=l-a+"px",e.style.height=p-o+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};_e.styles=Kt,_e=n([m("qti-graphic-gap-match-interaction")],_e);var Jt=b`
365
365
  slot:not([name='prompt']) {
366
366
  position: relative; /* qti-hotspot-choice relative to the slot */
367
367
  display: block;
@@ -372,17 +372,17 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
372
372
  pointer-events: none;
373
373
  user-select: none;
374
374
  }
375
- `;var ke=class extends K(E,"qti-hotspot-choice"){constructor(){super(...arguments);this._choiceElements=[]}render(){return u`
375
+ `;var ke=class extends Z(E,"qti-hotspot-choice"){constructor(){super(...arguments);this._choiceElements=[]}render(){return h`
376
376
  <slot name="prompt"></slot>
377
377
  <slot></slot>
378
378
  <div role="alert" id="validationMessage"></div>
379
- `}setHotspotOrder(e){let{identifier:t}=e.detail,r=this._choiceElements.find(a=>a.getAttribute("identifier")===t),o=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(a=>a.order>0).length>=o){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(a=>!!a.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(a=>(a.order>a.order&&a.order--,a)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),a=r.getAttribute("shape"),i=o.split(",").map(l=>parseInt(l));ge(a,i,t,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("activate-qti-hotspot-choice",this.setHotspotOrder),this.addEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("activate-qti-hotspot-choice",this.setHotspotOrder),this.removeEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}};ke.styles=Jt,ke=n([m("qti-graphic-order-interaction")],ke);var be=class extends N(v,"qti-hotspot-choice"){};be.styles=g`
379
+ `}setHotspotOrder(e){let{identifier:t}=e.detail,r=this._choiceElements.find(a=>a.getAttribute("identifier")===t),s=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(a=>a.order>0).length>=s){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(a=>!!a.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(a=>(a.order>a.order&&a.order--,a)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,s=r.getAttribute("coords"),a=r.getAttribute("shape"),o=s.split(",").map(l=>parseInt(l));ge(a,o,t,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("activate-qti-hotspot-choice",this.setHotspotOrder),this.addEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("activate-qti-hotspot-choice",this.setHotspotOrder),this.removeEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}};ke.styles=Jt,ke=n([m("qti-graphic-order-interaction")],ke);var be=class extends $(v,"qti-hotspot-choice"){};be.styles=b`
380
380
  :host {
381
381
  display: flex;
382
382
  user-select: none;
383
383
  position: absolute;
384
384
  }
385
- `,n([d({attribute:"aria-ordervalue",type:Number,reflect:!0})],be.prototype,"order",2),be=n([m("qti-hotspot-choice")],be);var Zt=g`
385
+ `,n([d({attribute:"aria-ordervalue",type:Number,reflect:!0})],be.prototype,"order",2),be=n([m("qti-hotspot-choice")],be);var Zt=b`
386
386
  slot:not([name='prompt']) {
387
387
  position: relative; /* qti-hotspot-choice relative to the slot */
388
388
  display: block;
@@ -394,16 +394,16 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
394
394
  user-select: none;
395
395
  /* width:100%; */
396
396
  }
397
- `;var Re=class extends K(E,"qti-hotspot-choice"){render(){return u`
397
+ `;var Re=class extends Z(E,"qti-hotspot-choice"){render(){return h`
398
398
  <slot name="prompt"></slot>
399
399
  <slot></slot>
400
- `}positionHotspotOnRegister(s){let e=this.querySelector("img"),t=s.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),a=r.split(",").map(i=>parseInt(i));ge(o,a,e,t)}connectedCallback(){super.connectedCallback(),this.addEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("unregister-qti-hotspot-choice",this.positionHotspotOnRegister)}};Re.styles=Zt,Re=n([m("qti-hotspot-interaction")],Re);var Ke=class extends K(E,"qti-hottext"){constructor(){super(...arguments);this.render=()=>u`<slot></slot>`}};Ke=n([m("qti-hottext-interaction")],Ke);var Le=class extends N(v,"qti-hottext"){render(){return u`<div part="ch"><div part="cha"></div></div>
401
- <slot></slot> `}};Le.styles=g`
400
+ `}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),s=t.getAttribute("shape"),a=r.split(",").map(o=>parseInt(o));ge(s,a,e,t)}connectedCallback(){super.connectedCallback(),this.addEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("unregister-qti-hotspot-choice",this.positionHotspotOnRegister)}};Re.styles=Zt,Re=n([m("qti-hotspot-interaction")],Re);var Ke=class extends Z(E,"qti-hottext"){constructor(){super(...arguments);this.render=()=>h`<slot></slot>`}};Ke=n([m("qti-hottext-interaction")],Ke);var Le=class extends $(v,"qti-hottext"){render(){return h`<div part="ch"><div part="cha"></div></div>
401
+ <slot></slot> `}};Le.styles=b`
402
402
  :host {
403
403
  display: flex;
404
404
  user-select: none;
405
405
  }
406
- `,Le=n([m("qti-hottext")],Le);var Ae=class extends le{constructor(s){if(super(s),this.it=R,s.type!==ae.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(s){if(s===R||s==null)return this._t=void 0,this.it=s;if(s===ne)return s;if(typeof s!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(s===this.it)return this._t;this.it=s;let e=[s];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};Ae.directiveName="unsafeHTML",Ae.resultType=1;var G=j(Ae);var Q=class extends E{constructor(){super(...arguments);this.options=[];this.correctOption="";this.dataPrompt="select"}static get styles(){return[g`
406
+ `,Le=n([m("qti-hottext")],Le);var Ae=class extends le{constructor(i){if(super(i),this.it=R,i.type!==ae.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(i){if(i===R||i==null)return this._t=void 0,this.it=i;if(i===ne)return i;if(typeof i!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(i===this.it)return this._t;this.it=i;let e=[i];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};Ae.directiveName="unsafeHTML",Ae.resultType=1;var ee=K(Ae);var te=class extends E{constructor(){super(...arguments);this.options=[];this.correctOption="";this.dataPrompt="select"}static get styles(){return[b`
407
407
  :host {
408
408
  display: inline-block;
409
409
  }
@@ -425,23 +425,23 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
425
425
  /* position-anchor: --infobox; */
426
426
  /* top: anchor(bottom); */
427
427
  }
428
- `]}render(){return u`
428
+ `]}render(){return h`
429
429
  <select part="select" @change="${this.choiceSelected}" ?disabled="${this.disabled}" ?readonly="${this.readonly}">
430
- ${this.options.map(e=>u`
431
- <option value="${e.value}" ?selected="${e.selected}">${G(e.textContent)}</option>
430
+ ${this.options.map(e=>h`
431
+ <option value="${e.value}" ?selected="${e.selected}">${ee(e.textContent)}</option>
432
432
  `)}
433
433
  </select>
434
434
 
435
- ${G(this.correctOption)}
436
- `}connectedCallback(){super.connectedCallback(),this.addEventListener("on-dropdown-selected",this.choiceSelected);let e=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...e.map(t=>({textContent:t.innerHTML,value:t.getAttribute("identifier"),selected:!1}))]}disconnectedCallback(){this.removeEventListener("on-dropdown-selected",this.choiceSelected)}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>({...e,selected:t===0}))}set value(e){this.options=this.options.map(t=>(e&&e===t.value&&(t.selected=!0),t))}get value(){return this.options.find(e=>e.selected)?.value||null}set correctResponse(e){if(e===""){this.correctOption="";return}this.correctOption=`<span part="correct-option">${this.options.find(t=>e===t.value).textContent}</span>`}choiceSelected(e){let t=e.target.value;this.options=this.options.map(r=>({...r,selected:r.value===t})),this.saveResponse(t)}};Q.inputWidthClass=["","qti-input-width-2","qti-input-width-1","qti-input-width-3","qti-input-width-4","qti-input-width-6","qti-input-width-10","qti-input-width-15","qti-input-width-20","qti-input-width-72"],n([C()],Q.prototype,"options",2),n([C()],Q.prototype,"correctOption",2),n([d({attribute:"data-prompt",type:String})],Q.prototype,"dataPrompt",2),Q=n([m("qti-inline-choice-interaction")],Q);var De=class extends v{static get styles(){return[g`
435
+ ${ee(this.correctOption)}
436
+ `}connectedCallback(){super.connectedCallback(),this.addEventListener("on-dropdown-selected",this.choiceSelected);let e=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...e.map(t=>({textContent:t.innerHTML,value:t.getAttribute("identifier"),selected:!1}))]}disconnectedCallback(){this.removeEventListener("on-dropdown-selected",this.choiceSelected)}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>({...e,selected:t===0}))}set value(e){this.options=this.options.map(t=>(e&&e===t.value&&(t.selected=!0),t))}get value(){return this.options.find(e=>e.selected)?.value||null}set correctResponse(e){if(e===""){this.correctOption="";return}this.correctOption=`<span part="correct-option">${this.options.find(t=>e===t.value).textContent}</span>`}choiceSelected(e){let t=e.target.value;this.options=this.options.map(r=>({...r,selected:r.value===t})),this.saveResponse(t)}};te.inputWidthClass=["","qti-input-width-2","qti-input-width-1","qti-input-width-3","qti-input-width-4","qti-input-width-6","qti-input-width-10","qti-input-width-15","qti-input-width-20","qti-input-width-72"],n([C()],te.prototype,"options",2),n([C()],te.prototype,"correctOption",2),n([d({attribute:"data-prompt",type:String})],te.prototype,"dataPrompt",2),te=n([m("qti-inline-choice-interaction")],te);var De=class extends v{static get styles(){return[b`
437
437
  :host {
438
438
  display: block;
439
439
  cursor: pointer;
440
440
  }
441
- `]}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onSelectInlineChoice),this.dispatchEvent(new CustomEvent("qti-inline-choice-register",{bubbles:!0,composed:!0,cancelable:!1}))}disconnectedCallback(){this.removeEventListener("click",this._onSelectInlineChoice)}render(){return u` <slot></slot> `}_onSelectInlineChoice(){this.dispatchEvent(new CustomEvent("qti-inline-choice-select",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier}}))}};n([d({type:String})],De.prototype,"identifier",2),De=n([m("qti-inline-choice")],De);var ee=class extends N(v,"qti-simple-associable-choice"){constructor(){super(...arguments);this.matchMin=0;this.matchMax=1;this.fixed=!1}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return u`
441
+ `]}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onSelectInlineChoice),this.dispatchEvent(new CustomEvent("qti-inline-choice-register",{bubbles:!0,composed:!0,cancelable:!1}))}disconnectedCallback(){this.removeEventListener("click",this._onSelectInlineChoice)}render(){return h` <slot></slot> `}_onSelectInlineChoice(){this.dispatchEvent(new CustomEvent("qti-inline-choice-select",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier}}))}};n([d({type:String})],De.prototype,"identifier",2),De=n([m("qti-inline-choice")],De);var re=class extends $(v,"qti-simple-associable-choice"){constructor(){super(...arguments);this.matchMin=0;this.matchMax=1;this.fixed=!1}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return h`
442
442
  <slot part="slot"></slot>
443
443
  <slot part="dropslot" name="qti-simple-associable-choice"></slot>
444
- `}};ee.styles=g`
444
+ `}};re.styles=b`
445
445
  :host {
446
446
  display: flex;
447
447
  user-select: none;
@@ -453,7 +453,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
453
453
  slot[name='qti-simple-associable-choice'] {
454
454
  width: 100%;
455
455
  }
456
- `,n([d({type:Number,attribute:"match-min"})],ee.prototype,"matchMin",2),n([d({type:Number,attribute:"match-max"})],ee.prototype,"matchMax",2),n([d({type:Boolean,attribute:"fixed"})],ee.prototype,"fixed",2),ee=n([m("qti-simple-associable-choice")],ee);var Gt=g`
456
+ `,n([d({type:Number,attribute:"match-min"})],re.prototype,"matchMin",2),n([d({type:Number,attribute:"match-max"})],re.prototype,"matchMax",2),n([d({type:Boolean,attribute:"fixed"})],re.prototype,"fixed",2),re=n([m("qti-simple-associable-choice")],re);var Gt=b`
457
457
  slot:not([hidden]) {
458
458
  /* slot where the */
459
459
  display: flex;
@@ -480,28 +480,28 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
480
480
  /* Make sure the drag and drop container slots have the same width */
481
481
  flex: 1;
482
482
  }
483
- `;var U=class extends V(E,"qti-simple-match-set:first-of-type qti-simple-associable-choice, qti-simple-match-set:last-of-type > qti-simple-associable-choice > qti-simple-associable-choice","qti-simple-match-set:last-of-type > qti-simple-associable-choice","qti-simple-match-set:first-of-type"){constructor(){super(...arguments);this.lastCheckedRadio=null;this.class="";this._response=[];this.responseIdentifier="";this.correctOptions=[];this.handleRadioClick=e=>{let t=e.target;this.lastCheckedRadio===t?(t.checked=!1,this.lastCheckedRadio=null,this.handleRadioChange(e)):this.lastCheckedRadio=t};this.handleRadioChange=e=>{let t=e.target,r=t.value,o=t.name,a=t.type;t.checked?(this.value?this.value.indexOf(r)===-1&&(a==="radio"&&(this.value=this.value.filter(i=>i.indexOf(o)===-1)),this.value=[...this.value,r]):this.value=[r],this.lastCheckedRadio=t):(this.value=this.value.filter(i=>i!==r),this.lastCheckedRadio=null),this.requestUpdate(),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:Array.isArray(this.value)?[...this.value]:this.value}}))}}get value(){return this.classList.contains("qti-match-tabular")?this._response:super.value}set value(e){this.classList.contains("qti-match-tabular")?this._response=e:super.value=e}async connectedCallback(){super.connectedCallback(),this.rows=Array.from(this.querySelectorAll("qti-simple-match-set:first-of-type qti-simple-associable-choice")),this.cols=Array.from(this.querySelectorAll("qti-simple-match-set:last-of-type qti-simple-associable-choice")),this.value=[]}set correctResponse(e){if(e===""){this.correctOptions=[];return}else Array.isArray(e)&&(this.correctOptions=e,this.class.split(" ").includes("qti-match-tabular")||(this.value=e))}render(){let e=this.class.split(" ").includes("qti-match-tabular");return u`
483
+ `;var U=class extends V(E,"qti-simple-match-set:first-of-type qti-simple-associable-choice, qti-simple-match-set:last-of-type > qti-simple-associable-choice > qti-simple-associable-choice","qti-simple-match-set:last-of-type > qti-simple-associable-choice","qti-simple-match-set:first-of-type"){constructor(){super(...arguments);this.lastCheckedRadio=null;this.class="";this._response=[];this.responseIdentifier="";this.correctOptions=[];this.handleRadioClick=e=>{let t=e.target;this.lastCheckedRadio===t?(t.checked=!1,this.lastCheckedRadio=null,this.handleRadioChange(e)):this.lastCheckedRadio=t};this.handleRadioChange=e=>{let t=e.target,r=t.value,s=t.name,a=t.type;t.checked?(this.value?this.value.indexOf(r)===-1&&(a==="radio"&&(this.value=this.value.filter(o=>o.indexOf(s)===-1)),this.value=[...this.value,r]):this.value=[r],this.lastCheckedRadio=t):(this.value=this.value.filter(o=>o!==r),this.lastCheckedRadio=null),this.requestUpdate(),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:Array.isArray(this.value)?[...this.value]:this.value}}))}}get value(){return this.classList.contains("qti-match-tabular")?this._response:super.value}set value(e){this.classList.contains("qti-match-tabular")?this._response=e:super.value=e}async connectedCallback(){super.connectedCallback(),this.rows=Array.from(this.querySelectorAll("qti-simple-match-set:first-of-type qti-simple-associable-choice")),this.cols=Array.from(this.querySelectorAll("qti-simple-match-set:last-of-type qti-simple-associable-choice")),this.value=[]}set correctResponse(e){if(e===""){this.correctOptions=[];return}else Array.isArray(e)&&(this.correctOptions=e,this.class.split(" ").includes("qti-match-tabular")||(this.value=e))}render(){let e=this.class.split(" ").includes("qti-match-tabular");return h`
484
484
  <slot name="prompt"></slot>
485
485
  <slot ?hidden=${e}></slot>
486
486
 
487
- ${e?u`
487
+ ${e?h`
488
488
  <table>
489
489
  <tr>
490
490
  <td></td>
491
- ${this.cols.map(t=>u`<th part="r-header">${G(t.innerHTML)}</th>`)}
491
+ ${this.cols.map(t=>h`<th part="r-header">${ee(t.innerHTML)}</th>`)}
492
492
  </tr>
493
493
 
494
- ${this.rows.map(t=>u`<tr>
495
- <td part="c-header">${G(t.innerHTML)}</td>
496
- ${this.cols.map(r=>{let o=t.getAttribute("identifier"),a=r.getAttribute("identifier"),i=`${o} ${a}`,l=this.value.filter(b=>b.split(" ")[0]===o).length||0,p=this.value.includes(i),h=`rb ${p?"rb-checked":""} ${this.correctOptions.includes(i)?"rb-correct":""}`,f=this.correctOptions.length>0?!0:t.matchMax===1?!1:l>=t.matchMax&&!p;return u`<td>
494
+ ${this.rows.map(t=>h`<tr>
495
+ <td part="c-header">${ee(t.innerHTML)}</td>
496
+ ${this.cols.map(r=>{let s=t.getAttribute("identifier"),a=r.getAttribute("identifier"),o=`${s} ${a}`,l=this.value.filter(g=>g.split(" ")[0]===s).length||0,p=this.value.includes(o),u=`rb ${p?"rb-checked":""} ${this.correctOptions.includes(o)?"rb-correct":""}`,f=this.correctOptions.length>0?!0:t.matchMax===1?!1:t.matchMax!==0&&l>=t.matchMax&&!p;return h`<td>
497
497
  <input
498
498
  type=${t.matchMax===1?"radio":"checkbox"}
499
- part=${h}
500
- name=${o}
501
- value=${i}
499
+ part=${u}
500
+ name=${s}
501
+ value=${o}
502
502
  .disabled=${f}
503
- @change=${b=>this.handleRadioChange(b)}
504
- @click=${b=>t.matchMax===1?this.handleRadioClick(b):null}
503
+ @change=${g=>this.handleRadioChange(g)}
504
+ @click=${g=>t.matchMax===1?this.handleRadioClick(g):null}
505
505
  />
506
506
  </td>`})}
507
507
  </tr>`)}
@@ -509,8 +509,8 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
509
509
  `:R}
510
510
 
511
511
  <div role="alert" id="validationMessage"></div>
512
- `}};U.styles=Gt,n([d({type:String})],U.prototype,"class",2),n([C()],U.prototype,"_response",2),n([d({type:String,attribute:"response-identifier"})],U.prototype,"responseIdentifier",2),n([C()],U.prototype,"correctOptions",2),U=n([m("qti-match-interaction")],U);var He=class extends E{constructor(){super();this._value=0}reset(){}validate(){return!0}get value(){return this._value.toString()}set value(e){if(!isNaN(parseInt(e.toString())))this._value=parseInt(e.toString());else throw new Error("Value must be a number")}static get properties(){return{...E.properties,step:{type:Number,attribute:"step",default:10}}}render(){return u` <slot name="prompt"></slot>
513
- <slot></slot>`}connectedCallback(){super.connectedCallback();let e=this.querySelector("audio")||this.querySelector("video")||this.querySelector("object");e&&e.addEventListener("ended",()=>{this._value++,this.saveResponse(this.value)})}};He.styles=[g``],He=n([m("qti-media-interaction")],He);var Qt=g`
512
+ `}};U.styles=Gt,n([d({type:String})],U.prototype,"class",2),n([C()],U.prototype,"_response",2),n([d({type:String,attribute:"response-identifier"})],U.prototype,"responseIdentifier",2),n([C()],U.prototype,"correctOptions",2),U=n([m("qti-match-interaction")],U);var He=class extends E{constructor(){super();this._value=0}reset(){}validate(){return!0}get value(){return this._value.toString()}set value(e){if(!isNaN(parseInt(e.toString())))this._value=parseInt(e.toString());else throw new Error("Value must be a number")}static get properties(){return{...E.properties,step:{type:Number,attribute:"step",default:10}}}render(){return h` <slot name="prompt"></slot>
513
+ <slot></slot>`}connectedCallback(){super.connectedCallback();let e=this.querySelector("audio")||this.querySelector("video")||this.querySelector("object");e&&e.addEventListener("ended",()=>{this._value++,this.saveResponse(this.value)})}};He.styles=[b``],He=n([m("qti-media-interaction")],He);var Qt=b`
514
514
  [part='drags'] {
515
515
  display: flex;
516
516
  align-items: flex-start;
@@ -559,16 +559,16 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
559
559
  :host(.qti-choices-right) [part='container'] {
560
560
  flex-direction: row-reverse;
561
561
  }
562
- `;var B=class extends je(V(E,"qti-simple-choice","drop-list","slot[part='drags']"),"qti-simple-choice"){constructor(){super(...arguments);this.nrChoices=0;this.correctResponses=[];this.showCorrectResponses=!1}render(){let e=Array.from(this.querySelectorAll("qti-simple-choice"));return this.nrChoices<e.length&&(this.nrChoices=e.length),u` <slot name="prompt"> </slot>
562
+ `;var B=class extends je(V(E,"qti-simple-choice","drop-list","slot[part='drags']"),"qti-simple-choice"){constructor(){super(...arguments);this.nrChoices=0;this.correctResponses=[];this.showCorrectResponses=!1}render(){let e=Array.from(this.querySelectorAll("qti-simple-choice"));return this.nrChoices<e.length&&(this.nrChoices=e.length),h` <slot name="prompt"> </slot>
563
563
  <div part="container">
564
564
  <slot part="drags"> </slot>
565
565
  <div part="drops">
566
- ${Array.from(Array(this.nrChoices)).map((t,r)=>u`<drop-list part="drop-list" identifier="droplist${r}"></drop-list>${this.showCorrectResponses&&this.correctResponses.length>r?G(`<span part='correct-response'>${this.correctResponses[r]}</span>`):""}`)}
566
+ ${Array.from(Array(this.nrChoices)).map((t,r)=>h`<drop-list part="drop-list" identifier="droplist${r}"></drop-list>${this.showCorrectResponses&&this.correctResponses.length>r?ee(`<span part='correct-response'>${this.correctResponses[r]}</span>`):""}`)}
567
567
  </div>
568
- </div>`}set correctResponse(e){if(e===""){this.showCorrectResponses=!1;return}this.correctResponses.length===0&&(Array.isArray(e)?e:[e]).forEach(r=>{let o=this.querySelector(`qti-simple-choice[identifier="${r}"]`);o||(o=this.shadowRoot.querySelector(`qti-simple-choice[identifier="${r}"]`));let a=o?.textContent.trim();this.correctResponses=[...this.correctResponses,a]}),this.showCorrectResponses=!0}getResponse(){return Array.from(this.shadowRoot.querySelectorAll("drop-list")).map(r=>{let o=r.querySelectorAll('[qti-draggable="true"]');return[...Array.from(o).map(i=>i.getAttribute("identifier"))].join(" ")})}async firstUpdated(e){super.firstUpdated(e),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(t=>t.setAttribute("part","qti-simple-choice"))}};B.styles=Qt,n([C()],B.prototype,"nrChoices",2),n([C()],B.prototype,"correctResponses",2),n([C()],B.prototype,"showCorrectResponses",2),n([d({type:String})],B.prototype,"orientation",2),B=n([m("qti-order-interaction")],B);var se=class extends E{constructor(){super(...arguments);this._errorMessage=null;this.loadConfig=async(e,t)=>{e=this.removeDoubleSlashes(e);try{let r=await fetch(e);if(r.ok){let a=await r.json();for(let i in a.paths)t&&(a.paths[i]=this.getResolvablePath(a.paths[i],t));return a}}catch{}return null};this.getResolvablePathString=(e,t)=>(e=e.replace(/\.js$/,""),e?.toLocaleLowerCase().startsWith("http")||!t?e:this.removeDoubleSlashes(`${t}/${e}`));this.getResolvablePath=(e,t)=>Array.isArray(e)?e.map(r=>this.getResolvablePathString(r,t)):this.getResolvablePathString(e,t)}convertQtiVariableJSON(e){for(let t in e)if(e.hasOwnProperty(t)){let r=e[t];if(r){for(let o in r)if(r.hasOwnProperty(o)){let a=r[o];if(Array.isArray(a))return a.map(String);if(a!=null)return String(a)}}}return null}startChecking(){this.intervalId=setInterval(()=>{let e=this.pci.getResponse(),t=this.pci.getResponse(),r=JSON.stringify(e);if(r!==this.rawResponse){this.rawResponse=r;let o=this.convertQtiVariableJSON(t);this.value=o,this.saveResponse(o)}},200)}stopChecking(){this.intervalId!==void 0&&clearInterval(this.intervalId)}validate(){return!0}set value(e){}get value(){return this.rawResponse}getTAOConfig(e){let t=e.querySelectorAll("properties"),r={},o=i=>{let l={},p=i.getAttribute("key");if(p){let h=Array.from(i.children),f=h.map(y=>y.getAttribute("key"));f.length>0&&!f.find(y=>!Number.isInteger(+y))?l[p]=h.map(y=>a(y)):l[p]=i.textContent}return l},a=i=>{if(i){let l={};for(let p of i.children)l={...l,...o(p)};return l}};for(let i of t)return i.getAttribute("key")||(r={...r,...a(i)}),r;return console.log("Can not find qti-custom-interaction config"),null}register(e){this.pci=e;let t=this.parentElement.tagName==="QTI-CUSTOM-INTERACTION"?"TAO":"IMS",r=t=="IMS"?this.querySelector("qti-interaction-markup"):this.querySelector("markup");r.classList.add("qti-customInteraction"),t=="TAO"&&this.querySelector("properties")&&(this.querySelector("properties").style.display="none");let o=t=="IMS"?{properties:this.dataset,onready:()=>{console.log("onready")}}:this.getTAOConfig(this);t=="IMS"?e.getInstance(r,o,void 0):e.initialize(this.customInteractionTypeIdentifier,r.firstElementChild,o),t=="TAO"&&Array.from(this.querySelectorAll("link")).map(i=>i.getAttribute("href")).forEach(i=>{let l=document.createElement("link");l.rel="stylesheet",l.type="text/css",l.media="screen",l.href=i,r.appendChild(l)}),this.startChecking()}connectedCallback(){super.connectedCallback(),define("qtiCustomInteractionContext",()=>({register:r=>{this.register(r)},notifyReady:()=>{}}));let e=this.buildRequireConfig();requirejs.config(e)(["require"],r=>{r([this.module])})}disconnectedCallback(){super.disconnectedCallback(),requirejs.undef(this.customInteractionTypeIdentifier);let e=requirejs.s.contexts;delete e[this.customInteractionTypeIdentifier],this.stopChecking()}buildRequireConfig(){let e={context:this.customInteractionTypeIdentifier,catchError:!0,paths:window.requirePaths||{},shim:window.requireShim||{}};if(!globalThis.require)return this._errorMessage="RequireJS not found. Please load it via CDN: https://cdnjs.com/libraries/require.js",null;let t=this.getAttribute("data-base-url"),r=this.querySelector("qti-interaction-modules");if(r){let o=r.querySelectorAll("qti-interaction-module");for(let a of o){let i=a.getAttribute("id"),l=a.getAttribute("primary-path"),p=a.getAttribute("fallback-path");if(i&&l){let h=p?this.combineRequireResolvePaths(this.getResolvablePath(l,t),this.getResolvablePath(p,t)):this.getResolvablePath(l,t),f=e.paths[i]||[];e.paths[i]=this.combineRequireResolvePaths(f,h)}}}return e}combineRequireResolvePaths(e,t){let r=Array.isArray(e)?e:[e],o=Array.isArray(t)?t:[t];return r.concat(o)}removeDoubleSlashes(e){return e.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}render(){return u`<slot></slot>${this._errorMessage&&u`<div style="color:red">
568
+ </div>`}set correctResponse(e){if(e===""){this.showCorrectResponses=!1;return}this.correctResponses.length===0&&(Array.isArray(e)?e:[e]).forEach(r=>{let s=this.querySelector(`qti-simple-choice[identifier="${r}"]`);s||(s=this.shadowRoot.querySelector(`qti-simple-choice[identifier="${r}"]`));let a=s?.textContent.trim();this.correctResponses=[...this.correctResponses,a]}),this.showCorrectResponses=!0}getResponse(){return Array.from(this.shadowRoot.querySelectorAll("drop-list")).map(r=>{let s=r.querySelectorAll('[qti-draggable="true"]');return[...Array.from(s).map(o=>o.getAttribute("identifier"))].join(" ")})}async firstUpdated(e){super.firstUpdated(e),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(t=>t.setAttribute("part","qti-simple-choice"))}};B.styles=Qt,n([C()],B.prototype,"nrChoices",2),n([C()],B.prototype,"correctResponses",2),n([C()],B.prototype,"showCorrectResponses",2),n([d({type:String})],B.prototype,"orientation",2),B=n([m("qti-order-interaction")],B);var oe=class extends E{constructor(){super(...arguments);this._errorMessage=null;this.loadConfig=async(e,t)=>{e=this.removeDoubleSlashes(e);try{let r=await fetch(e);if(r.ok){let a=await r.json();for(let o in a.paths)t&&(a.paths[o]=this.getResolvablePath(a.paths[o],t));return a}}catch{}return null};this.getResolvablePathString=(e,t)=>(e=e.replace(/\.js$/,""),e?.toLocaleLowerCase().startsWith("http")||!t?e:this.removeDoubleSlashes(`${t}/${e}`));this.getResolvablePath=(e,t)=>Array.isArray(e)?e.map(r=>this.getResolvablePathString(r,t)):this.getResolvablePathString(e,t)}convertQtiVariableJSON(e){for(let t in e)if(e.hasOwnProperty(t)){let r=e[t];if(r){for(let s in r)if(r.hasOwnProperty(s)){let a=r[s];if(Array.isArray(a))return a.map(String);if(a!=null)return String(a)}}}return null}startChecking(){this.intervalId=setInterval(()=>{let e=this.pci.getResponse(),t=JSON.stringify(e);if(t!==this.rawResponse){this.rawResponse=t;let r=this.convertQtiVariableJSON(e);this.value=r,this.saveResponse(r)}},200)}stopChecking(){this.intervalId!==void 0&&clearInterval(this.intervalId)}validate(){return!0}set value(e){}get value(){return this.rawResponse}register(e){this.pci=e;let t=this.querySelector("qti-interaction-markup");t.classList.add("qti-customInteraction"),this.querySelector("properties")&&(this.querySelector("properties").style.display="none");let r={properties:this.dataset,onready:()=>{console.log("onready")}};if(e.getInstance)e.getInstance(t,r,void 0);else{let a=(o=>{let l={},u=(f=>{let g={};Object.entries(f.dataset).forEach(([T,x])=>{T.includes("__")||(g[T]=x)});let y={};return Object.entries(f.dataset).forEach(([T,x])=>{let j=T.split("__");if(j.length>1){let[M,W,pr]=j;y[M]=y[M]||{},y[M][W]=y[M][W]||{},y[M][W][pr]=x}}),Object.entries(y).forEach(([T,x])=>{g[T]=Object.values(x)}),g})(o);for(let f in u)if(Object.prototype.hasOwnProperty.call(u,f)){let g=u[f];f==="config"?l[f]=JSON.parse(g):l[f]=g}return l})(this);e.initialize(this.customInteractionTypeIdentifier,t.firstElementChild,Object.keys(a).length?a:null)}this.startChecking()}connectedCallback(){super.connectedCallback(),console.log("connectedCallback"),define("qtiCustomInteractionContext",()=>({register:r=>{this.register(r)},notifyReady:()=>{}}));let e=this.buildRequireConfig(),t=requirejs.config(e);requirejs.onError=function(r){throw console.error("RequireJS error:",r),r.requireType==="timeout"&&console.error("Modules that timed out:",r.requireModules),r},t(["require"],r=>{try{r([this.module],()=>{},s=>{console.error("Error loading module:",s)})}catch(s){console.error("Error in require call:",s)}})}disconnectedCallback(){super.disconnectedCallback(),requirejs.undef(this.customInteractionTypeIdentifier);let e=requirejs.s.contexts;delete e[this.customInteractionTypeIdentifier],this.stopChecking()}buildRequireConfig(){let e={context:this.customInteractionTypeIdentifier,catchError:!0,paths:window.requirePaths||{},shim:window.requireShim||{}};if(!globalThis.require)return this._errorMessage="RequireJS not found. Please load it via CDN: https://cdnjs.com/libraries/require.js",null;let t=this.getAttribute("data-base-url"),r=this.querySelector("qti-interaction-modules");if(r){let s=r.querySelectorAll("qti-interaction-module");for(let a of s){let o=a.getAttribute("id"),l=a.getAttribute("primary-path"),p=a.getAttribute("fallback-path");if(o&&l){let u=p?this.combineRequireResolvePaths(this.getResolvablePath(l,t),this.getResolvablePath(p,t)):this.getResolvablePath(l,t),f=e.paths[o]||[];e.paths[o]=this.combineRequireResolvePaths(f,u)}}}return e}combineRequireResolvePaths(e,t){let r=Array.isArray(e)?e:[e],s=Array.isArray(t)?t:[t];return r.concat(s).filter((a,o,l)=>l.indexOf(a)===o)}removeDoubleSlashes(e){return e.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}render(){return h`<slot></slot>${this._errorMessage&&h`<div style="color:red">
569
569
  <h1>Error</h1>
570
570
  ${this._errorMessage}
571
- </div>`}`}};n([d({type:String,attribute:"module"})],se.prototype,"module",2),n([d({type:String,attribute:"custom-interaction-type-identifier"})],se.prototype,"customInteractionTypeIdentifier",2),n([C()],se.prototype,"_errorMessage",2),se=n([m("qti-portable-custom-interaction")],se);var Je=class extends v{render(){return u`<slot></slot>`}};Je.styles=[g`
571
+ </div>`}`}};n([d({type:String,attribute:"module"})],oe.prototype,"module",2),n([d({type:String,attribute:"custom-interaction-type-identifier"})],oe.prototype,"customInteractionTypeIdentifier",2),n([C()],oe.prototype,"_errorMessage",2),oe=n([m("qti-portable-custom-interaction")],oe);var Je=class extends v{render(){return h`<slot></slot>`}};Je.styles=[b`
572
572
  :host {
573
573
  display: block;
574
574
  }
@@ -579,23 +579,23 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
579
579
  left: 50%;
580
580
  transform: translateX(-50%);
581
581
  }
582
- `];customElements.define("qti-position-object-interaction",Je);var Ve=class extends v{render(){return u`<slot></slot>`}constructor(){super(),this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}dragElementHandler(s){s.preventDefault();let e=s.clientX-this.startX,t=s.clientY-this.startY;this.dragElement.style.left=this.dragElement.offsetLeft+e+"px",this.dragElement.style.top=this.dragElement.offsetTop+t+"px",this.startX=s.clientX,this.startY=s.clientY}firstUpdated(s){super.firstUpdated(s),this.dragElement=this.querySelector("qti-position-object-interaction>img"),this.startX=0,this.startY=0,this.dragElement.addEventListener("mousedown",e=>{this.startX=e.clientX,this.startY=e.clientY,document.addEventListener("mousemove",this.dragElementHandler,!0)}),document.addEventListener("mouseup",this.removeMoveListener)}removeMoveListener(){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};Ve.styles=[g`
582
+ `];customElements.define("qti-position-object-interaction",Je);var Ve=class extends v{render(){return h`<slot></slot>`}constructor(){super(),this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}dragElementHandler(i){i.preventDefault();let e=i.clientX-this.startX,t=i.clientY-this.startY;this.dragElement.style.left=this.dragElement.offsetLeft+e+"px",this.dragElement.style.top=this.dragElement.offsetTop+t+"px",this.startX=i.clientX,this.startY=i.clientY}firstUpdated(i){super.firstUpdated(i),this.dragElement=this.querySelector("qti-position-object-interaction>img"),this.startX=0,this.startY=0,this.dragElement.addEventListener("mousedown",e=>{this.startX=e.clientX,this.startY=e.clientY,document.addEventListener("mousemove",this.dragElementHandler,!0)}),document.addEventListener("mouseup",this.removeMoveListener)}removeMoveListener(){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};Ve.styles=[b`
583
583
  :host {
584
584
  display: inline-block;
585
585
  position: relative;
586
586
  }
587
- `],Ve=n([m("qti-position-object-stage")],Ve);var er="important",ur=" !"+er,tr=j(class extends le{constructor(c){if(super(c),c.type!==ae.ATTRIBUTE||c.name!=="style"||c.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(c){return Object.keys(c).reduce((s,e)=>{let t=c[e];return t==null?s:s+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${t};`},"")}update(c,[s]){let{style:e}=c.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(s)),this.render(s);for(let t of this.ft)s[t]==null&&(this.ft.delete(t),t.includes("-")?e.removeProperty(t):e[t]=null);for(let t in s){let r=s[t];if(r!=null){this.ft.add(t);let o=typeof r=="string"&&r.endsWith(ur);t.includes("-")||o?e.setProperty(t,o?r.slice(0,-11):r,o?er:""):e[t]=r}}return ne}});var te=class extends E{constructor(){super(...arguments);this.maxChoices=1/0;this.minChoices=0;this._points=[];this._imgElement=null;this._onImageClick=e=>{if(this._points.length<this.maxChoices){let t=e.offsetX,r=e.offsetY;this._points=[...this._points,`${t} ${r}`],this.saveResponse(this._points)}}}render(){return u` <slot name="prompt"></slot>
587
+ `],Ve=n([m("qti-position-object-stage")],Ve);var er="important",ur=" !"+er,tr=K(class extends le{constructor(c){if(super(c),c.type!==ae.ATTRIBUTE||c.name!=="style"||c.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(c){return Object.keys(c).reduce((i,e)=>{let t=c[e];return t==null?i:i+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${t};`},"")}update(c,[i]){let{style:e}=c.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(i)),this.render(i);for(let t of this.ft)i[t]==null&&(this.ft.delete(t),t.includes("-")?e.removeProperty(t):e[t]=null);for(let t in i){let r=i[t];if(r!=null){this.ft.add(t);let s=typeof r=="string"&&r.endsWith(ur);t.includes("-")||s?e.setProperty(t,s?r.slice(0,-11):r,s?er:""):e[t]=r}}return ne}});var ie=class extends E{constructor(){super(...arguments);this.maxChoices=1/0;this.minChoices=0;this._points=[];this._imgElement=null;this._onImageClick=e=>{if(this.maxChoices===0||this._points.length<this.maxChoices){let t=e.offsetX,r=e.offsetY;this._points=[...this._points,`${t} ${r}`],this.saveResponse(this._points)}}}render(){return h` <slot name="prompt"></slot>
588
588
  <point-container>
589
- ${We(this._points,e=>e,(e,t)=>u`
589
+ ${We(this._points,e=>e,(e,t)=>h`
590
590
  <button
591
591
  part="point"
592
592
  style=${tr({position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
593
593
  aria-label="Remove point at ${e}"
594
- @click=${r=>{r.stopPropagation(),this._points=this._points.filter((o,a)=>a!==t),this.saveResponse(this._points)}}
594
+ @click=${r=>{r.stopPropagation(),this._points=this._points.filter((s,a)=>a!==t),this.saveResponse(this._points)}}
595
595
  ></button>
596
596
  `)}
597
597
  <slot></slot>
598
- </point-container>`}reset(){this._points=[]}validate(){return this._points.length>=this.minChoices&&this._points.length<=this.maxChoices}set value(e){this._points=Array.isArray(e)?e:[e]}get value(){return this._points}firstUpdated(){this._imgElement=this.querySelector("img"),this._imgElement?this._imgElement.addEventListener("click",this._onImageClick):console.warn("No <img> element found in <qti-select-point-interaction>")}disconnectedCallback(){super.disconnectedCallback(),this._imgElement&&this._imgElement.removeEventListener("click",this._onImageClick)}};te.styles=[g`
598
+ </point-container>`}reset(){this._points=[]}validate(){return this._points.length>=this.minChoices&&this._points.length<=this.maxChoices}set value(e){this._points=Array.isArray(e)?e:[e]}get value(){return this._points}firstUpdated(){this._imgElement=this.querySelector("img"),this._imgElement?this._imgElement.addEventListener("click",this._onImageClick):console.warn("No <img> element found in <qti-select-point-interaction>")}disconnectedCallback(){super.disconnectedCallback(),this._imgElement&&this._imgElement.removeEventListener("click",this._onImageClick)}};ie.styles=[b`
599
599
  :host {
600
600
  display: block;
601
601
  }
@@ -603,11 +603,11 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
603
603
  display: block;
604
604
  position: relative;
605
605
  }
606
- `],n([d({type:Number,attribute:"max-choices"})],te.prototype,"maxChoices",2),n([d({type:Number,attribute:"min-choices"})],te.prototype,"minChoices",2),n([C()],te.prototype,"_points",2),te=n([m("qti-select-point-interaction")],te);var ve=class extends N(v,"qti-simple-choice"){get checked(){return this.internals.states.has("--checked")}render(){return u`<div part="ch">
606
+ `],n([d({type:Number,attribute:"max-choices"})],ie.prototype,"maxChoices",2),n([d({type:Number,attribute:"min-choices"})],ie.prototype,"minChoices",2),n([C()],ie.prototype,"_points",2),ie=n([m("qti-select-point-interaction")],ie);var ve=class extends $(v,"qti-simple-choice"){get checked(){return this.internals.states.has("--checked")}render(){return h`<div part="ch">
607
607
  <div part="cha"></div>
608
608
  </div>
609
- ${this.marker?u`<div id="label">${this.marker}</div>`:R}
610
- <slot part="slot"></slot> `}};ve.styles=g`
609
+ ${this.marker?h`<div id="label">${this.marker}</div>`:R}
610
+ <slot part="slot"></slot> `}};ve.styles=b`
611
611
  :host {
612
612
  display: flex;
613
613
  align-items: center;
@@ -624,7 +624,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
624
624
  align-items: center;
625
625
  justify-content: center;
626
626
  }
627
- `,n([d({type:String,attribute:!1})],ve.prototype,"marker",2),ve=n([m("qti-simple-choice")],ve);var rr=g`
627
+ `,n([d({type:String,attribute:!1})],ve.prototype,"marker",2),ve=n([m("qti-simple-choice")],ve);var rr=b`
628
628
  :host {
629
629
  display: block;
630
630
  --show-bounds: true;
@@ -692,7 +692,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
692
692
  text-align: center;
693
693
  color: #6b7280; /* text-gray-500 */
694
694
  }
695
- `;var $=class extends v{constructor(){super();this._value=0;this.min=0;this.max=100;this.step=1;this._internals=this.attachInternals()}connectedCallback(){super.connectedCallback(),this._updateValue(this.min),this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}get value(){return this._value.toString()}set value(e){let t=parseInt(e,10);isNaN(t)||this._updateValue(t)}_updateValue(e){this._value=Math.min(this.max,Math.max(this.min,e));let t=(this._value-this.min)/(this.max-this.min)*100;this.style.setProperty("--value-percentage",`${t}%`),this._internals.setFormValue(this.value),this.requestUpdate()}render(){return u`
695
+ `;var N=class extends v{constructor(){super();this._value=0;this.min=0;this.max=100;this.step=1;this._internals=this.attachInternals()}connectedCallback(){super.connectedCallback(),this._updateValue(this.min),this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}get value(){return this._value.toString()}set value(e){let t=parseInt(e,10);isNaN(t)||this._updateValue(t)}_updateValue(e){this._value=Math.min(this.max,Math.max(this.min,e));let t=(this._value-this.min)/(this.max-this.min)*100;this.style.setProperty("--value-percentage",`${t}%`),this._internals.setFormValue(this.value),this.requestUpdate()}render(){return h`
696
696
  <slot name="prompt"></slot>
697
697
  <div id="slider" part="slider">
698
698
  <div id="bounds" part="bounds">
@@ -706,7 +706,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
706
706
  <div id="knob" part="knob"><div id="value" part="value">${this.value}</div></div>
707
707
  </div>
708
708
  </div>
709
- `}_onMouseDown(e){this._startDrag(e.pageX);let t=o=>this._onDrag(o.pageX),r=()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),this._onDragEnd()};document.addEventListener("mousemove",t),document.addEventListener("mouseup",r)}_onTouchStart(e){this._startDrag(e.touches[0].pageX);let t=o=>this._onDrag(o.touches[0].pageX),r=()=>{document.removeEventListener("touchmove",t),document.removeEventListener("touchend",r),this._onDragEnd()};document.addEventListener("touchmove",t,{passive:!1}),document.addEventListener("touchend",r)}_startDrag(e){this._onDrag(e)}_onDrag(e){let t=this._rail.getBoundingClientRect(),r=e-t.left,o=Math.min(1,Math.max(0,r/t.width)),a=this.min+Math.round(o*(this.max-this.min)/this.step)*this.step;this._updateValue(a)}_onDragEnd(){this.dispatchEvent(new Event("change",{bubbles:!0}))}};$.formAssociated=!0,$.styles=rr,n([Ye("#rail")],$.prototype,"_rail",2),n([d({type:Number,attribute:"lower-bound"})],$.prototype,"min",2),n([d({type:Number,attribute:"upper-bound"})],$.prototype,"max",2),n([d({type:Number,attribute:"step"})],$.prototype,"step",2),$=n([m("qti-slider-interaction")],$);var ir=()=>new pt,pt=class{},ct=new WeakMap,Oa=j(class extends Ot{render(c){return R}update(c,[s]){let e=s!==this.Y;return e&&this.Y!==void 0&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.Y=s,this.ht=c.options?.host,this.rt(this.ct=c.element)),R}rt(c){if(this.isConnected||(c=void 0),typeof this.Y=="function"){let s=this.ht??globalThis,e=ct.get(s);e===void 0&&(e=new WeakMap,ct.set(s,e)),e.get(this.Y)!==void 0&&this.Y.call(this.ht,void 0),e.set(this.Y,c),c!==void 0&&this.Y.call(this.ht,c)}else this.Y.value=c}get lt(){return typeof this.Y=="function"?ct.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var sr=g`
709
+ `}_onMouseDown(e){this._startDrag(e.pageX);let t=s=>this._onDrag(s.pageX),r=()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),this._onDragEnd()};document.addEventListener("mousemove",t),document.addEventListener("mouseup",r)}_onTouchStart(e){this._startDrag(e.touches[0].pageX);let t=s=>this._onDrag(s.touches[0].pageX),r=()=>{document.removeEventListener("touchmove",t),document.removeEventListener("touchend",r),this._onDragEnd()};document.addEventListener("touchmove",t,{passive:!1}),document.addEventListener("touchend",r)}_startDrag(e){this._onDrag(e)}_onDrag(e){let t=this._rail.getBoundingClientRect(),r=e-t.left,s=Math.min(1,Math.max(0,r/t.width)),a=this.min+Math.round(s*(this.max-this.min)/this.step)*this.step;this._updateValue(a)}_onDragEnd(){this.dispatchEvent(new Event("change",{bubbles:!0}))}};N.formAssociated=!0,N.styles=rr,n([Ye("#rail")],N.prototype,"_rail",2),n([d({type:Number,attribute:"lower-bound"})],N.prototype,"min",2),n([d({type:Number,attribute:"upper-bound"})],N.prototype,"max",2),n([d({type:Number,attribute:"step"})],N.prototype,"step",2),N=n([m("qti-slider-interaction")],N);var ir=()=>new pt,pt=class{},ct=new WeakMap,Ia=K(class extends It{render(c){return R}update(c,[i]){let e=i!==this.Y;return e&&this.Y!==void 0&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.Y=i,this.ht=c.options?.host,this.rt(this.ct=c.element)),R}rt(c){if(this.isConnected||(c=void 0),typeof this.Y=="function"){let i=this.ht??globalThis,e=ct.get(i);e===void 0&&(e=new WeakMap,ct.set(i,e)),e.get(this.Y)!==void 0&&this.Y.call(this.ht,void 0),e.set(this.Y,c),c!==void 0&&this.Y.call(this.ht,c)}else this.Y.value=c}get lt(){return typeof this.Y=="function"?ct.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var sr=b`
710
710
  :host {
711
711
  display: inline-block;
712
712
  }
@@ -788,7 +788,7 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
788
788
  width: 57rem;
789
789
  min-width: 57rem;
790
790
  }
791
- `;var I=class extends E{constructor(){super(...arguments);this._value="";this.inputRef=ir()}get value(){return this._value||null}set value(e){if(typeof e=="string"||e===null){this._value=e||"";let t=new FormData;t.append(this.responseIdentifier,this._value),this._internals.setFormValue(t),this.validate()}else throw new Error("Value must be a string")}validate(){let e=this.shadowRoot.querySelector("input");if(!e)return!1;if(this.patternMask&&this.dataPatternmaskMessage)this._internals.setValidity({}),e.setCustomValidity(""),e.checkValidity()||(this._internals.setValidity({customError:!0},this.dataPatternmaskMessage),e.setCustomValidity(this.dataPatternmaskMessage));else{let t=e.checkValidity();this._internals.setValidity(t?{}:{customError:!1})}return this._value!==""&&e.checkValidity()}render(){return u`
791
+ `;var O=class extends E{constructor(){super(...arguments);this._value="";this.inputRef=ir()}get value(){return this._value||null}set value(e){if(typeof e=="string"||e===null){this._value=e||"";let t=new FormData;t.append(this.responseIdentifier,this._value),this._internals.setFormValue(t),this.validate()}else throw new Error("Value must be a string")}validate(){let e=this.shadowRoot.querySelector("input");if(!e)return!1;if(this.patternMask&&this.dataPatternmaskMessage)this._internals.setValidity({}),e.setCustomValidity(""),e.checkValidity()||(this._internals.setValidity({customError:!0},this.dataPatternmaskMessage),e.setCustomValidity(this.dataPatternmaskMessage));else{let t=e.checkValidity();this._internals.setValidity(t?{}:{customError:!1})}return this._value!==""&&e.checkValidity()}render(){return h`
792
792
  <input
793
793
  part="input"
794
794
  name="${this.responseIdentifier}"
@@ -799,20 +799,20 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
799
799
  @keyup="${this.textChanged}"
800
800
  @change="${this.textChanged}"
801
801
  type="${this.patternMask=="[0-9]*"?"number":"text"}"
802
- placeholder="${Z(this.placeholderText?this.placeholderText:void 0)}"
802
+ placeholder="${Q(this.placeholderText?this.placeholderText:void 0)}"
803
803
  .value="${this._value}"
804
- pattern="${Z(this.patternMask?this.patternMask:void 0)}"
804
+ pattern="${Q(this.patternMask?this.patternMask:void 0)}"
805
805
  maxlength=${1e3}
806
806
  ?disabled="${this.disabled}"
807
807
  ?readonly="${this.readonly}"
808
808
  />
809
809
  <div part="correct">${this._correctResponse}</div>
810
- `}textChanged(e){if(this.disabled||this.readonly)return;let t=e.target;this.setEmptyAttribute(t.value),this._value!==t.value&&(this.value=t.value,this.saveResponse(t.value))}reportValidity(){let e=this.shadowRoot.querySelector("input");if(!e)return!1;let t=this.validate();return t||e.reportValidity(),t}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};I.styles=sr,n([d({type:Number,attribute:"expected-length"})],I.prototype,"expectedLength",2),n([d({type:String,attribute:"pattern-mask"})],I.prototype,"patternMask",2),n([d({type:String,attribute:"placeholder-text"})],I.prototype,"placeholderText",2),n([d({type:String,attribute:"data-patternmask-message"})],I.prototype,"dataPatternmaskMessage",2),n([C()],I.prototype,"_value",2),I=n([m("qti-text-entry-interaction")],I);var Ne=class extends E{constructor(){super(...arguments);this._file=null;this._base64=null}reset(){this._file=null,this._base64=null,this.saveResponse(null)}validate(){return this._base64!==null}get value(){return this._base64}set value(e){if(typeof e=="string")this._base64=e,this.saveResponse(e);else if(e===null)this.reset();else throw new Error("Value must be a Base64-encoded string or null")}static get properties(){return{...E.properties}}render(){return u`
810
+ `}textChanged(e){if(this.disabled||this.readonly)return;let t=e.target;this.setEmptyAttribute(t.value),this._value!==t.value&&(this.value=t.value,this.saveResponse(t.value))}reportValidity(){let e=this.shadowRoot.querySelector("input");if(!e)return!1;let t=this.validate();return t||e.reportValidity(),t}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};O.styles=sr,n([d({type:Number,attribute:"expected-length"})],O.prototype,"expectedLength",2),n([d({type:String,attribute:"pattern-mask"})],O.prototype,"patternMask",2),n([d({type:String,attribute:"placeholder-text"})],O.prototype,"placeholderText",2),n([d({type:String,attribute:"data-patternmask-message"})],O.prototype,"dataPatternmaskMessage",2),n([C()],O.prototype,"_value",2),O=n([m("qti-text-entry-interaction")],O);var $e=class extends E{constructor(){super(...arguments);this._file=null;this._base64=null}reset(){this._file=null,this._base64=null,this.saveResponse(null)}validate(){return this._base64!==null}get value(){return this._base64}set value(e){if(typeof e=="string")this._base64=e,this.saveResponse(e);else if(e===null)this.reset();else throw new Error("Value must be a Base64-encoded string or null")}static get properties(){return{...E.properties}}render(){return h`
811
811
  <div>
812
812
  <slot name="prompt"></slot>
813
813
  <input type="file" @change="${this._onFileChange}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" />
814
814
  </div>
815
- `}async _onFileChange(e){let t=e.target;t.files&&t.files.length>0&&(this._file=t.files[0],this._base64=await this._convertToBase64(this._file),this.saveResponse(this._base64),this.dispatchEvent(new CustomEvent("qti-interaction-response",{detail:{response:this._base64}})))}_convertToBase64(e){return new Promise((t,r)=>{let o=new FileReader;o.onload=()=>t(o.result),o.onerror=()=>r(o.error),o.readAsDataURL(e)})}};Ne.styles=[g`
815
+ `}async _onFileChange(e){let t=e.target;t.files&&t.files.length>0&&(this._file=t.files[0],this._base64=await this._convertToBase64(this._file),this.saveResponse(this._base64),this.dispatchEvent(new CustomEvent("qti-interaction-response",{detail:{response:this._base64}})))}_convertToBase64(e){return new Promise((t,r)=>{let s=new FileReader;s.onload=()=>t(s.result),s.onerror=()=>r(s.error),s.readAsDataURL(e)})}};$e.styles=[b`
816
816
  :host {
817
817
  display: block;
818
818
  margin: 1em 0;
@@ -821,15 +821,15 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
821
821
  display: block;
822
822
  margin-top: 0.5em;
823
823
  }
824
- `],Ne=n([m("qti-upload-interaction")],Ne);var or=g`
824
+ `],$e=n([m("qti-upload-interaction")],$e);var or=b`
825
825
  :host {
826
826
  display: block;
827
827
  }
828
- `;var $e=class extends v{render(){return u`<slot name="qti-rubric-block"></slot><slot></slot>`}};$e.styles=or,$e=n([m("qti-item-body")],$e);var Ie=class extends v{render(){return u`<slot></slot>`}process(){let s=new dt,e=[...this.children];s.process(e)}};Ie.styles=[g`
828
+ `;var Ne=class extends v{render(){return h`<slot name="qti-rubric-block"></slot><slot></slot>`}};Ne.styles=or,Ne=n([m("qti-item-body")],Ne);var Oe=class extends v{render(){return h`<slot></slot>`}process(){let i=new dt,e=[...this.children];i.process(e)}};Oe.styles=[b`
829
829
  :host {
830
830
  display: none;
831
831
  }
832
- `],Ie=n([m("qti-outcome-processing")],Ie);var dt=class{process(s){for(let e of s)e.process()}};var Ze=class extends v{render(){return u`<slot></slot>`}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};Ze=n([m("qti-prompt")],Ze);var nr=`<qti-response-processing>
832
+ `],Oe=n([m("qti-outcome-processing")],Oe);var dt=class{process(i){for(let e of i)e.process()}};var Ze=class extends v{render(){return h`<slot></slot>`}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};Ze=n([m("qti-prompt")],Ze);var nr=`<qti-response-processing>
833
833
  <qti-response-condition>
834
834
  <qti-response-if>
835
835
  <qti-match>
@@ -878,23 +878,23 @@ import{a as ae,b as j,c as le,e as ce,f as W,g as $t,h as It,i as Be,j as Ot}fro
878
878
  </qti-set-outcome-value>
879
879
  </qti-response-else>
880
880
  </qti-response-condition>
881
- </qti-response-processing>`;var Oe=class extends v{render(){return u`<slot></slot>`}process(){if(!this.closest("qti-assessment-item"))return;let e=[...this.children];for(let t of e)t.process()}firstUpdated(s){if(this.getAttribute("template")){let e=this.getAttribute("template").split("/"),t=e[e.length-1].replace(".xml","");switch(this.innerHTML="",t){case"map_response":{this.appendChild(this.fragmentFromString(ar).firstElementChild.firstElementChild);break}case"map_response_point":{this.appendChild(this.fragmentFromString(lr).firstElementChild.firstElementChild);break}case"match_correct":this.appendChild(this.fragmentFromString(nr).firstElementChild.firstElementChild);break}}}fragmentFromString(s){return document.createRange().createContextualFragment(s)}};Oe.styles=[g`
881
+ </qti-response-processing>`;var Ie=class extends v{render(){return h`<slot></slot>`}process(){if(!this.closest("qti-assessment-item"))return;let e=[...this.children];for(let t of e)t.process()}firstUpdated(i){if(this.getAttribute("template")){let e=this.getAttribute("template").split("/"),t=e[e.length-1].replace(".xml","");switch(this.innerHTML="",t){case"map_response":{this.appendChild(this.fragmentFromString(ar).firstElementChild.firstElementChild);break}case"map_response_point":{this.appendChild(this.fragmentFromString(lr).firstElementChild.firstElementChild);break}case"match_correct":this.appendChild(this.fragmentFromString(nr).firstElementChild.firstElementChild);break}}}fragmentFromString(i){return document.createRange().createContextualFragment(i)}};Ie.styles=[b`
882
882
  :host {
883
883
  display: none;
884
884
  }
885
- `],Oe=n([m("qti-response-processing")],Oe);var O=class extends v{render(){return u`<slot></slot>`}process(){throw new Error("Not implemented")}};O=n([m("qti-rule")],O);var Ge=class extends O{get childExpression(){return this.firstElementChild}process(){let s=this.getAttribute("identifier"),e=this.closest("qti-assessment-item").getVariable(s),t;return e.interpolationTable&&(t=e.interpolationTable.get(parseInt(this.childExpression.calculate()))),t==null?(console.warn("lookupOutcomeValue: value is null or undefined"),0):(this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:this.identifier,value:Ee(t)}})),t)}};n([d({type:String})],Ge.prototype,"identifier",2);customElements.define("qti-lookup-outcome-value",Ge);var ut=class extends O{render(){return u`<slot></slot>`}process(){let s=[...this.children];for(let e=0;e<s.length;e++){let t=s[e];if(t.calculate()){t.process();return}}}};customElements.define("qti-response-condition",ut);var ht=class extends O{process(){let s=this.getAttribute("identifier"),e=this.firstElementChild,r=new mt(e).process();this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:s,value:Array.isArray(r)?r.map(o=>Ee(o)):Ee(r)}}))}},mt=class{constructor(s){this.expression=s}process(){let s=this.expression?this.expression.calculate():null;if(s==null){console.warn("setOutcomeValue: value is null or undefined");return}return s}};customElements.define("qti-set-outcome-value",ht);var Pe=class extends v{render(){return u`<slot></slot>`}calculate(){return!0}getSubRules(){return[...this.children]}process(){let s=this.getSubRules();for(let e=0;e<s.length;e++)s[e].process()}};customElements.define("qti-response-else",Pe);var Fe=class extends Pe{calculate(){return this.firstElementChild.calculate()}getSubRules(){let s=[];for(let e=1;e<this.children.length;e++)s.push(this.children[e]);return s}};customElements.define("qti-response-if",Fe);var ft=class extends Fe{render(){return u`${super.render()}`}};customElements.define("qti-response-else-if",ft);var cr=class extends hr(H){calculate(){return this.calculateChildren(Array.from(this.children))}};function hr(c){return class extends c{calculateChildren(e){return e.map(r=>{let o=r;if(!o.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let a=o.calculate(),i=!1;if(typeof a=="string")if(a==="true")i=!0;else if(a==="false")i=!1;else return console.error("unexpected val in qti-or, expected boolean"),null;else typeof a=="boolean"&&(i=a);return i}).every(r=>typeof r=="boolean"&&r)}}}var Qe=class extends q{constructor(){super(...arguments);this.baseType="string"}getResult(){return this.textContent.trim()}};n([d({type:String,attribute:"base-type"})],Qe.prototype,"baseType",2);customElements.define("qti-base-value",Qe);var gt=class extends H{getResult(){let s=this.getVariables();if(this.children.length===2){let e=s[0],t=s[1];if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="multiple"){let r=e.value,o=t.value;return r.filter(l=>o.includes(l)).length>0}else if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="single"){let r=e.value;return t.value.includes(r)}else console.error("unsupported baseType or cardinality in qti contains, only baseType: directedPair and cardinality: multiple is supported")}else console.error("unexpected number of children in qti contains");return!1}};customElements.define("qti-contains",gt);var bt=class extends q{get interpretation(){return this.getAttribute("interpretation")||""}getResult(){let s=this.getAttribute("identifier")||"",e=this.context.variables.find(t=>t.identifier===s)||null;return e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",bt);var et=class extends q{constructor(){super(...arguments);this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let t=parseInt(this.getAttribute("figures")||"0");return isNaN(t)?(console.error("figures attribute is not a number"),null):t<0?(console.error("figures attribute is negative"),null):t<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):t}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(this.roundingMode===null)return null;if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti equal"),!1;switch(e[0].baseType){case"integer":case"float":{let o=parseFloat(t.value),a=parseFloat(r.value);if(!isNaN(o)&&!isNaN(a))return this.roundingMode==="significantFigures"?o.toPrecision(this.figures)===a.toPrecision(this.figures):Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(a*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${o}, ${a}`);break}default:{console.error("values other than float and int cannot be used in equalRounded operator.");break}}return!1}return console.error("unexpected number of children in qti-equal-rounded"),null}};n([d({type:String})],et.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",et);var A=class{static compareSingleValues(s,e,t){switch(t){case"identifier":case"string":return s===e;case"integer":{let r=parseInt(s,10),o=parseInt(e,10);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`Cannot convert ${s} and/or ${e} to int.`);break}case"float":{let r=parseFloat(s),o=parseFloat(e);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`couldn't convert ${s} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=s.split(" ").sort(),o=e.split(" ").sort();if(r.length===2&&o.length===2)return t==="pair"&&(r.sort(),o.sort()),r.join(" ")===o.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${s} 2: ${e}`);break}}return!1}};var tt=class extends q{constructor(){super(...arguments);this.toleranceMode="exact"}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):A.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};n([d({type:String})],tt.prototype,"toleranceMode",2);customElements.define("qti-equal",tt);var vt=class extends q{getResult(){if(this.children.length===2){let s=this.getVariables(),e=s[0],t=s[1];if((e.baseType==="integer"||e.baseType==="float")&&(t.baseType==="integer"||t.baseType==="float"))return+e.value>+t.value;console.error("unexpected baseType or cardinality in qti gt")}return console.error("unexpected number of children in qt"),null}};customElements.define("qti-gt",vt);var yt=class extends H{getResult(){if(this.children.length===2){let s=this.getVariables(),e=s[0],t=s[1];return(e.baseType==="integer"||e.baseType==="float")&&(t.baseType==="integer"||t.baseType==="float")?+e.value>=+t.value:(console.error("unexpected baseType or cardinality in qti gte"),null)}return console.log("unexpected number of children in qte"),null}};customElements.define("qti-gte",yt);var xt=class extends q{getResult(){if(this.children.length===1){let s=this.getVariables();if(!s)return!0;let e=s[0].value;return e==null||e==null||e===""}return console.error("unexpected number of children in qti Null"),null}};customElements.define("qti-is-null",xt);var Et=class extends q{getResult(){if(this.children.length===2){let s=this.getVariables(),e=s[0],t=s[1];if((e.baseType==="integer"||e.baseType==="float")&&(t.baseType==="integer"||t.baseType==="float"))return+e.value<+t.value;console.error("unexpected baseType or cardinality in qti lt")}return console.error("unexpected number of children in lt"),null}};customElements.define("qti-lt",Et);var Ct=class extends H{getResult(){if(this.children.length===2){let s=this.getVariables(),e=s[0],t=s[1];return(e.baseType==="integer"||e.baseType==="float")&&(t.baseType==="integer"||t.baseType==="float")?+e.value<=+t.value:(console.error("unexpected baseType or cardinality in qti lte"),null)}return console.log("unexpected number of children in lte"),null}};customElements.define("qti-lte",Ct);var rt=class extends q{getResult(){let s=this.context.variables.find(o=>o.identifier===this.identifier);if(!s)return console.warn(`Response ${this.identifier} can not be found`),null;let e=s.mapping,t=Array.isArray(s.value)?s.value:[s.value],r=0;for(let o of t){let a=e.mapEntries.find(i=>A.compareSingleValues(i.mapKey,o,s.baseType));a==null||a.mappedValue==null?r+=e.defaultValue:r+=a.mappedValue}return e.lowerBound!=null&&(r=Math.max(e.lowerBound,r)),e.upperBound!=null&&(r=Math.min(e.upperBound,r)),r}};n([d({type:String})],rt.prototype,"identifier",2);customElements.define("qti-map-response",rt);var ye=class extends v{constructor(){super(...arguments);this.defaultValue=0}get mapEntries(){return Array.from(this.querySelectorAll("qti-map-entry")).map(e=>({mapKey:e.getAttribute("map-key"),mappedValue:+e.getAttribute("mapped-value")}))}};n([d({attribute:"default-value",type:Number})],ye.prototype,"defaultValue",2),n([d({attribute:"lower-bound",type:Number})],ye.prototype,"lowerBound",2),n([d({attribute:"upper-bound",type:Number})],ye.prototype,"upperBound",2);customElements.define("qti-mapping",ye);var qt=class c extends q{getResult(){if(this.children.length===2){let s=this.getVariables(),e=s[0],t=s[1];return c.match(e,t)}return console.error("unexpected number of children in match"),null}static match(s,e){switch(e.cardinality){case"single":return s.value===null?!1:Array.isArray(s.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):A.compareSingleValues(s.value?.toString(),e.value.toString(),e.baseType);case"ordered":{if(!Array.isArray(s.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(s.value.length!==e.value.length)return!1;for(let t=0;t<s.value.length;t++)if(!A.compareSingleValues(e.value[t],s.value[t],e.baseType))return!1;return!0}case"multiple":{if(!Array.isArray(s.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(s.value.length!==e.value.length)return!1;let t=0;for(let r of e.value){let o=null,a=[...s.value];for(let i of a)if(A.compareSingleValues(r,i,e.baseType)){o=i;break}if(o!==null)a.splice(a.indexOf(o),1);else return!1;t++}return!0}default:return console.error("unexpected cardinality in qti match"),!1}}};customElements.define("qti-match",qt);var Tt=class extends q{getResult(){let s=this.getVariables();this.children.length!==2&&console.warn("The member operator takes two sub-expressions");let[e,t]=s;if(e.baseType===t.baseType||e.baseType==="integer"&&t.baseType==="float"||e.baseType==="float"&&t.baseType==="integer"||console.warn("Which must both have the same base-type"),t.cardinality==="multiple"||t.cardinality==="ordered"||console.warn("and the second must be a multiple or ordered container"),(e.baseType==="float"||t.baseType==="float")&&console.warn("The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||t.baseType==="duration")&&console.warn("It must not be used on sub-expressions with a base-type of duration"),e.value===null||t.value===null)return null;let r=e.value;return t.value.includes(r)}};customElements.define("qti-member",Tt);var Mt=class extends q{getResult(){let s=this.getVariables();if(s.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of s)if(e.cardinality!=="multiple"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti multiple"),[];return s}};customElements.define("qti-multiple",Mt);var wt=class extends q{render(){return u`${super.render()}`}getResult(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",wt);var St=class extends H{getResult(){return Array.from(this.children).map(e=>{let t=e;if(!t.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=t.calculate(),o=!1;if(typeof r=="string")if(r==="true")o=!0;else if(r==="false")o=!1;else return console.error("unexpected val in qti-or, expected boolean"),null;else typeof r=="boolean"&&(o=r);return o}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",St);var _t=class extends q{getResult(){let s=this.getVariables();if(s.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of s)if(e.cardinality!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return s}};customElements.define("qti-ordered",_t);var ze=class extends v{render(){let s=this.context?.variables.find(e=>e.identifier===this.identifier)?.value;return u`${JSON.stringify(s,null,2)}`}calculate(){return this.context.variables.find(e=>e.identifier===this.identifier)||null}};n([d({type:String})],ze.prototype,"identifier",2),n([D({context:L,subscribe:!0}),C()],ze.prototype,"context",2);customElements.define("qti-printed-variable",ze);var kt=class extends q{getResult(){return this.getVariables().reduce((t,r)=>{if(r.baseType=="float"||r.baseType=="integer")try{return t*parseInt(r.value.toString())}catch{console.warn("can not convert to number")}else console.warn(`has another baseType ${r.baseType}`);return t},1)}};customElements.define("qti-product",kt);var it=class extends mr(q){getResult(){return this.calculateChildren(Array.from(this.children))}};function mr(c){return class extends c{calculateChildren(e){let t=e.map(r=>{if(!r.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let o=r.calculate();return Number.isNaN(o)?(console.error("Unexpected value in qti-subtract, expected number"),null):Number(o)});return t.some(r=>r===null)?(console.error("One or more child expressions returned invalid values"),0):t[0]-t[1]}}}customElements.define("qti-subtract",it);var st=class extends q{constructor(){super(...arguments);this.caseSensitive="true"}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti string-match"),!1;let o=this.caseSensitive==="true"?t.value:t.value.toLowerCase(),a=this.caseSensitive==="true"?r.value:r.value.toLowerCase();return A.compareSingleValues(o,a,t.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};n([d({type:String,attribute:"case-sensitive"})],st.prototype,"caseSensitive",2);customElements.define("qti-string-match",st);var Rt=class extends q{constructor(){super(),this._expression=new Lt(Array.from(this.children))}getResult(){return this._expression.calculate()}},Lt=class{constructor(s){this.expressions=s}calculate(){return this.expressions.map(e=>{if(!e.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let t=e.calculate();return Number.isNaN(t)?(console.error("unexpected value in qti-sum, expected number"),null):Number(t)}).reduce((e,t)=>e+t,0)}};customElements.define("qti-sum",Rt);var At=class extends q{getResult(){let s=this.getAttribute("identifier");return this.context.variables.find(t=>t.identifier===s).value}};customElements.define("qti-variable",At);var ot=class extends v{render(){return u`<slot></slot>`}};ot=n([m("qti-content-body")],ot);var P=class extends v{handleclassNamesChange(){this.classNames.split(" ").forEach(e=>{switch(e){case"qti-rubric-discretionary-placement":this.setAttribute("slot","qti-rubric-block");break;case"qti-rubric-inline":this.setAttribute("slot","");break;default:break}})}render(){return u`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};P.styles=g`
885
+ `],Ie=n([m("qti-response-processing")],Ie);var I=class extends v{render(){return h`<slot></slot>`}process(){throw new Error("Not implemented")}};I=n([m("qti-rule")],I);var Ge=class extends I{get childExpression(){return this.firstElementChild}process(){let i=this.getAttribute("identifier"),e=this.closest("qti-assessment-item").getVariable(i),t;return e.interpolationTable&&(t=e.interpolationTable.get(parseInt(this.childExpression.calculate()))),t==null?(console.warn("lookupOutcomeValue: value is null or undefined"),0):(this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:this.identifier,value:Ee(t)}})),t)}};n([d({type:String})],Ge.prototype,"identifier",2);customElements.define("qti-lookup-outcome-value",Ge);var ut=class extends I{render(){return h`<slot></slot>`}process(){let i=[...this.children];for(let e=0;e<i.length;e++){let t=i[e];if(t.calculate()){t.process();return}}}};customElements.define("qti-response-condition",ut);var ht=class extends I{process(){let i=this.getAttribute("identifier"),e=this.firstElementChild,r=new mt(e).process();this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:i,value:Array.isArray(r)?r.map(s=>Ee(s)):Ee(r)}}))}},mt=class{constructor(i){this.expression=i}process(){let i=this.expression?this.expression.calculate():null;if(i==null){console.warn("setOutcomeValue: value is null or undefined");return}return i}};customElements.define("qti-set-outcome-value",ht);var Pe=class extends v{render(){return h`<slot></slot>`}calculate(){return!0}getSubRules(){return[...this.children]}process(){let i=this.getSubRules();for(let e=0;e<i.length;e++)i[e].process()}};customElements.define("qti-response-else",Pe);var Fe=class extends Pe{calculate(){return this.firstElementChild.calculate()}getSubRules(){let i=[];for(let e=1;e<this.children.length;e++)i.push(this.children[e]);return i}};customElements.define("qti-response-if",Fe);var ft=class extends Fe{render(){return h`${super.render()}`}};customElements.define("qti-response-else-if",ft);var cr=class extends hr(H){calculate(){return this.calculateChildren(Array.from(this.children))}};function hr(c){return class extends c{calculateChildren(e){return e.map(r=>{let s=r;if(!s.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let a=s.calculate(),o=!1;if(typeof a=="string")if(a==="true")o=!0;else if(a==="false")o=!1;else return console.error("unexpected val in qti-or, expected boolean"),null;else typeof a=="boolean"&&(o=a);return o}).every(r=>typeof r=="boolean"&&r)}}}var Qe=class extends q{constructor(){super(...arguments);this.baseType="string"}getResult(){return this.textContent.trim()}};n([d({type:String,attribute:"base-type"})],Qe.prototype,"baseType",2);customElements.define("qti-base-value",Qe);var gt=class extends H{getResult(){let i=this.getVariables();if(this.children.length===2){let e=i[0],t=i[1];if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="multiple"){let r=e.value,s=t.value;return r.filter(l=>s.includes(l)).length>0}else if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="single"){let r=e.value;return t.value.includes(r)}else console.error("unsupported baseType or cardinality in qti contains, only baseType: directedPair and cardinality: multiple is supported")}else console.error("unexpected number of children in qti contains");return!1}};customElements.define("qti-contains",gt);var bt=class extends q{get interpretation(){return this.getAttribute("interpretation")||""}getResult(){let i=this.getAttribute("identifier")||"",e=this.context.variables.find(t=>t.identifier===i)||null;return e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",bt);var et=class extends q{constructor(){super(...arguments);this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let t=parseInt(this.getAttribute("figures")||"0");return isNaN(t)?(console.error("figures attribute is not a number"),null):t<0?(console.error("figures attribute is negative"),null):t<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):t}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(this.roundingMode===null)return null;if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti equal"),!1;switch(e[0].baseType){case"integer":case"float":{let s=parseFloat(t.value),a=parseFloat(r.value);if(!isNaN(s)&&!isNaN(a))return this.roundingMode==="significantFigures"?s.toPrecision(this.figures)===a.toPrecision(this.figures):Math.round(s*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(a*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${s}, ${a}`);break}default:{console.error("values other than float and int cannot be used in equalRounded operator.");break}}return!1}return console.error("unexpected number of children in qti-equal-rounded"),null}};n([d({type:String})],et.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",et);var A=class{static compareSingleValues(i,e,t){switch(t){case"identifier":case"string":return i===e;case"integer":{let r=parseInt(i,10),s=parseInt(e,10);if(!isNaN(r)&&!isNaN(s))return r===s;console.error(`Cannot convert ${i} and/or ${e} to int.`);break}case"float":{let r=parseFloat(i),s=parseFloat(e);if(!isNaN(r)&&!isNaN(s))return r===s;console.error(`couldn't convert ${i} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=i.split(" ").sort(),s=e.split(" ").sort();if(r.length===2&&s.length===2)return t==="pair"&&(r.sort(),s.sort()),r.join(" ")===s.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${i} 2: ${e}`);break}}return!1}};var tt=class extends q{constructor(){super(...arguments);this.toleranceMode="exact"}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):A.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};n([d({type:String})],tt.prototype,"toleranceMode",2);customElements.define("qti-equal",tt);var vt=class extends q{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if((e.baseType==="integer"||e.baseType==="float")&&(t.baseType==="integer"||t.baseType==="float"))return+e.value>+t.value;console.error("unexpected baseType or cardinality in qti gt")}return console.error("unexpected number of children in qt"),null}};customElements.define("qti-gt",vt);var yt=class extends H{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return(e.baseType==="integer"||e.baseType==="float")&&(t.baseType==="integer"||t.baseType==="float")?+e.value>=+t.value:(console.error("unexpected baseType or cardinality in qti gte"),null)}return console.log("unexpected number of children in qte"),null}};customElements.define("qti-gte",yt);var xt=class extends q{getResult(){if(this.children.length===1){let i=this.getVariables();if(!i)return!0;let e=i[0].value;return e==null||e==null||e===""}return console.error("unexpected number of children in qti Null"),null}};customElements.define("qti-is-null",xt);var Et=class extends q{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if((e.baseType==="integer"||e.baseType==="float")&&(t.baseType==="integer"||t.baseType==="float"))return+e.value<+t.value;console.error("unexpected baseType or cardinality in qti lt")}return console.error("unexpected number of children in lt"),null}};customElements.define("qti-lt",Et);var Ct=class extends H{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return(e.baseType==="integer"||e.baseType==="float")&&(t.baseType==="integer"||t.baseType==="float")?+e.value<=+t.value:(console.error("unexpected baseType or cardinality in qti lte"),null)}return console.log("unexpected number of children in lte"),null}};customElements.define("qti-lte",Ct);var rt=class extends q{getResult(){let i=this.context.variables.find(s=>s.identifier===this.identifier);if(!i||!i.mapping)return console.error(`Response ${this.identifier} can not be found`),null;let e=i.mapping,t=Array.isArray(i.value)?i.value:[i.value],r=0;for(let s of t){let a=e.mapEntries.find(o=>A.compareSingleValues(o.mapKey,s,i.baseType));a==null||a.mappedValue==null?r+=e.defaultValue:r+=a.mappedValue}return e.lowerBound!=null&&(r=Math.max(e.lowerBound,r)),e.upperBound!=null&&(r=Math.min(e.upperBound,r)),r}};n([d({type:String})],rt.prototype,"identifier",2);customElements.define("qti-map-response",rt);var ye=class extends v{constructor(){super(...arguments);this.defaultValue=0}get mapEntries(){return Array.from(this.querySelectorAll("qti-map-entry")).map(e=>({mapKey:e.getAttribute("map-key"),mappedValue:+e.getAttribute("mapped-value")}))}};n([d({attribute:"default-value",type:Number})],ye.prototype,"defaultValue",2),n([d({attribute:"lower-bound",type:Number})],ye.prototype,"lowerBound",2),n([d({attribute:"upper-bound",type:Number})],ye.prototype,"upperBound",2);customElements.define("qti-mapping",ye);var qt=class c extends q{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return c.match(e,t)}return console.error("unexpected number of children in match"),null}static match(i,e){switch(e.cardinality){case"single":return i.value===null?!1:Array.isArray(i.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):A.compareSingleValues(i.value?.toString(),e.value.toString(),e.baseType);case"ordered":{if(!Array.isArray(i.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(i.value.length!==e.value.length)return!1;for(let t=0;t<i.value.length;t++)if(!A.compareSingleValues(e.value[t],i.value[t],e.baseType))return!1;return!0}case"multiple":{if(!Array.isArray(i.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(i.value.length!==e.value.length)return!1;let t=0;for(let r of e.value){let s=null,a=[...i.value];for(let o of a)if(A.compareSingleValues(r,o,e.baseType)){s=o;break}if(s!==null)a.splice(a.indexOf(s),1);else return!1;t++}return!0}default:return console.error("unexpected cardinality in qti match"),!1}}};customElements.define("qti-match",qt);var Tt=class extends q{getResult(){let i=this.getVariables();this.children.length!==2&&console.warn("The member operator takes two sub-expressions");let[e,t]=i;if(e.baseType===t.baseType||e.baseType==="integer"&&t.baseType==="float"||e.baseType==="float"&&t.baseType==="integer"||console.warn("Which must both have the same base-type"),t.cardinality==="multiple"||t.cardinality==="ordered"||console.warn("and the second must be a multiple or ordered container"),(e.baseType==="float"||t.baseType==="float")&&console.warn("The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||t.baseType==="duration")&&console.warn("It must not be used on sub-expressions with a base-type of duration"),e.value===null||t.value===null)return null;let r=e.value;return t.value.includes(r)}};customElements.define("qti-member",Tt);var Mt=class extends q{getResult(){let i=this.getVariables();if(i.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of i)if(e.cardinality!=="multiple"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti multiple"),[];return i}};customElements.define("qti-multiple",Mt);var wt=class extends q{render(){return h`${super.render()}`}getResult(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",wt);var St=class extends H{getResult(){return Array.from(this.children).map(e=>{let t=e;if(!t.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=t.calculate(),s=!1;if(typeof r=="string")if(r==="true")s=!0;else if(r==="false")s=!1;else return console.error("unexpected val in qti-or, expected boolean"),null;else typeof r=="boolean"&&(s=r);return s}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",St);var _t=class extends q{getResult(){let i=this.getVariables();if(i.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of i)if(e.cardinality!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return i}};customElements.define("qti-ordered",_t);var ze=class extends v{render(){let i=this.context?.variables.find(e=>e.identifier===this.identifier)?.value;return h`${JSON.stringify(i,null,2)}`}calculate(){return this.context.variables.find(e=>e.identifier===this.identifier)||null}};n([d({type:String})],ze.prototype,"identifier",2),n([D({context:L,subscribe:!0}),C()],ze.prototype,"context",2);customElements.define("qti-printed-variable",ze);var kt=class extends q{getResult(){return this.getVariables().reduce((t,r)=>{if(r.baseType=="float"||r.baseType=="integer")try{return t*parseInt(r.value.toString())}catch{console.warn("can not convert to number")}else console.warn(`has another baseType ${r.baseType}`);return t},1)}};customElements.define("qti-product",kt);var it=class extends mr(q){getResult(){return this.calculateChildren(Array.from(this.children))}};function mr(c){return class extends c{calculateChildren(e){let t=e.map(r=>{if(!r.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let s=r.calculate();return Number.isNaN(s)?(console.error("Unexpected value in qti-subtract, expected number"),null):Number(s)});return t.some(r=>r===null)?(console.error("One or more child expressions returned invalid values"),0):t[0]-t[1]}}}customElements.define("qti-subtract",it);var st=class extends q{constructor(){super(...arguments);this.caseSensitive="true"}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti string-match"),!1;let s=this.caseSensitive==="true"?t.value:t.value.toLowerCase(),a=this.caseSensitive==="true"?r.value:r.value.toLowerCase();return A.compareSingleValues(s,a,t.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};n([d({type:String,attribute:"case-sensitive"})],st.prototype,"caseSensitive",2);customElements.define("qti-string-match",st);var Rt=class extends q{constructor(){super(),this._expression=new Lt(Array.from(this.children))}getResult(){return this._expression.calculate()}},Lt=class{constructor(i){this.expressions=i}calculate(){return this.expressions.map(e=>{if(!e.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let t=e.calculate();return Number.isNaN(t)?(console.error("unexpected value in qti-sum, expected number"),null):Number(t)}).reduce((e,t)=>e+t,0)}};customElements.define("qti-sum",Rt);var At=class extends q{getResult(){let i=this.getAttribute("identifier");return this.context.variables.find(t=>t.identifier===i).value}};customElements.define("qti-variable",At);var ot=class extends v{render(){return h`<slot></slot>`}};ot=n([m("qti-content-body")],ot);var P=class extends v{handleclassNamesChange(){this.classNames.split(" ").forEach(e=>{switch(e){case"qti-rubric-discretionary-placement":this.setAttribute("slot","qti-rubric-block");break;case"qti-rubric-inline":this.setAttribute("slot","");break;default:break}})}render(){return h`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};P.styles=b`
886
886
  :host {
887
887
  display: block;
888
888
  }
889
- `,n([d({type:String})],P.prototype,"id",2),n([d({type:String})],P.prototype,"use",2),n([d({type:String})],P.prototype,"view",2),n([d({type:String,attribute:"class"})],P.prototype,"classNames",2),n([w("classNames",{waitUntilFirstUpdate:!0})],P.prototype,"handleclassNamesChange",1),P=n([m("qti-rubric-block")],P);var nt=class extends v{constructor(){super(...arguments);this.styleElement=null}firstUpdated(e){super.firstUpdated(e);let t=this.getAttribute("href");if(t!==null&&fetch(t).then(r=>r.text()).then(r=>{let o=this.minifyCss(r);this.styleElement=document.createElement("style"),this.styleElement.media="screen",this.styleElement.textContent=`@scope {${o}}`,this.parentElement?this.parentElement.appendChild(this.styleElement):console.warn("No parent element to append the scoped stylesheet to.")}).catch(r=>{console.error("Failed to load stylesheet:",r)}),this.textContent!==null&&this.textContent.trim()!==""){let r=this.minifyCss(this.textContent);this.styleElement=document.createElement("style"),this.styleElement.media="screen",this.styleElement.textContent=`@scope {${r}}`,this.parentElement?this.parentElement.appendChild(this.styleElement):console.warn("No parent element to append the scoped stylesheet to.")}}minifyCss(e){return e.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\s+/g," ").replace(/\s*([{}:;])\s*/g,"$1").trim()}disconnectedCallback(){if(this.styleElement)try{this.styleElement.remove()}catch(e){console.error("Could not remove stylesheet:",e)}super.disconnectedCallback()}};nt=n([m("qti-stylesheet")],nt);var re=class extends v{render(){return u`<slot></slot>`}defaultValues(s){let e=Array.from(this.querySelectorAll("qti-default-value > qti-value"));if(e.length===0)return null;let t=e.map(r=>r.innerHTML.trim());return t.length>1||s.cardinality==="multiple"||s.cardinality==="ordered"?t:t[0]}};re=n([m("qti-variabledeclaration")],re);var F=class extends re{constructor(){super(...arguments);this.externalScored=null}render(){let e=this.itemContext?.variables.find(t=>t.identifier===this.identifier)?.value;return u`${JSON.stringify(e,null,2)}`}get interpolationTable(){let e=this.querySelector("qti-interpolation-table");if(e){let t=new Map;for(let r of e.querySelectorAll("qti-interpolation-table-entry")){!r.getAttribute("source-value")&&r.getAttribute("target-value")&&console.error("source-value or target-value is missing in qti-interpolation-table-entry");let o=parseInt(r.getAttribute("source-value")),a=parseInt(r.getAttribute("target-value"));(isNaN(o)||isNaN(a))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),t.set(o,a)}return t}return null}connectedCallback(){super.connectedCallback();let e={identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,type:"outcome",value:null,interpolationTable:this.interpolationTable,externalScored:this.externalScored};e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};F.styles=[g`
889
+ `,n([d({type:String})],P.prototype,"id",2),n([d({type:String})],P.prototype,"use",2),n([d({type:String})],P.prototype,"view",2),n([d({type:String,attribute:"class"})],P.prototype,"classNames",2),n([w("classNames",{waitUntilFirstUpdate:!0})],P.prototype,"handleclassNamesChange",1),P=n([m("qti-rubric-block")],P);var nt=class extends v{constructor(){super(...arguments);this.styleElement=null}firstUpdated(e){super.firstUpdated(e);let t=this.getAttribute("href");if(t!==null&&fetch(t).then(r=>r.text()).then(r=>{let s=this.minifyCss(r);this.styleElement=document.createElement("style"),this.styleElement.media="screen",this.styleElement.textContent=`@scope {${s}}`,this.parentElement?this.parentElement.appendChild(this.styleElement):console.warn("No parent element to append the scoped stylesheet to.")}).catch(r=>{console.error("Failed to load stylesheet:",r)}),this.textContent!==null&&this.textContent.trim()!==""){let r=this.minifyCss(this.textContent);this.styleElement=document.createElement("style"),this.styleElement.media="screen",this.styleElement.textContent=`@scope {${r}}`,this.parentElement?this.parentElement.appendChild(this.styleElement):console.warn("No parent element to append the scoped stylesheet to.")}}minifyCss(e){return e.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\s+/g," ").replace(/\s*([{}:;])\s*/g,"$1").trim()}disconnectedCallback(){if(this.styleElement)try{this.styleElement.remove()}catch(e){console.error("Could not remove stylesheet:",e)}super.disconnectedCallback()}};nt=n([m("qti-stylesheet")],nt);var se=class extends v{render(){return h`<slot></slot>`}defaultValues(i){let e=Array.from(this.querySelectorAll("qti-default-value > qti-value"));if(e.length===0)return null;let t=e.map(r=>r.innerHTML.trim());return t.length>1||i.cardinality==="multiple"||i.cardinality==="ordered"?t:t[0]}};se=n([m("qti-variabledeclaration")],se);var F=class extends se{constructor(){super(...arguments);this.externalScored=null}render(){let e=this.itemContext?.variables.find(t=>t.identifier===this.identifier)?.value;return h`${JSON.stringify(e,null,2)}`}get interpolationTable(){let e=this.querySelector("qti-interpolation-table");if(e){let t=new Map;for(let r of e.querySelectorAll("qti-interpolation-table-entry")){!r.getAttribute("source-value")&&r.getAttribute("target-value")&&console.error("source-value or target-value is missing in qti-interpolation-table-entry");let s=parseInt(r.getAttribute("source-value")),a=parseInt(r.getAttribute("target-value"));(isNaN(s)||isNaN(a))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),t.set(s,a)}return t}return null}connectedCallback(){super.connectedCallback();let e={identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,type:"outcome",value:null,interpolationTable:this.interpolationTable,externalScored:this.externalScored};e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};F.styles=[b`
890
890
  :host {
891
891
  display: none;
892
892
  }
893
- `],n([d({type:String,attribute:"base-type"})],F.prototype,"baseType",2),n([d({type:String,attribute:"external-scored"})],F.prototype,"externalScored",2),n([d({type:String})],F.prototype,"identifier",2),n([d({type:String})],F.prototype,"cardinality",2),n([D({context:L,subscribe:!0}),C()],F.prototype,"itemContext",2),F=n([m("qti-outcome-declaration")],F);var X=class extends re{render(){let s=this.itemContext?.variables.find(e=>e.identifier===this.identifier)?.value;return u`${JSON.stringify(s,null,2)}`}connectedCallback(){super.connectedCallback();let s={baseType:this.baseType,identifier:this.identifier,correctResponse:this.correctResponse,cardinality:this.cardinality||"single",mapping:this.mapping,value:null,type:"response",candidateResponse:null};s.value=this.defaultValues(s),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:s}}))}get correctResponse(){let s,e=this.querySelector("qti-correct-response");if(e){let t=e.querySelectorAll("qti-value");if(this.cardinality==="single"&&t.length>0)s=t[0].textContent.trim(),t[0].remove();else if(this.cardinality!=="single"){s=[];for(let r=0;r<t.length;r++)s.push(t[r].textContent.trim()),t[r].remove()}}return s}get mapping(){return this.querySelector("qti-mapping")}};X.styles=[g`
893
+ `],n([d({type:String,attribute:"base-type"})],F.prototype,"baseType",2),n([d({type:String,attribute:"external-scored"})],F.prototype,"externalScored",2),n([d({type:String})],F.prototype,"identifier",2),n([d({type:String})],F.prototype,"cardinality",2),n([D({context:L,subscribe:!0}),C()],F.prototype,"itemContext",2),F=n([m("qti-outcome-declaration")],F);var X=class extends se{render(){let i=this.itemContext?.variables.find(e=>e.identifier===this.identifier)?.value;return h`${JSON.stringify(i,null,2)}`}connectedCallback(){super.connectedCallback();let i={baseType:this.baseType,identifier:this.identifier,correctResponse:this.correctResponse,cardinality:this.cardinality||"single",mapping:this.mapping,value:null,type:"response",candidateResponse:null};i.value=this.defaultValues(i),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:i}}))}get correctResponse(){let i,e=this.querySelector("qti-correct-response");if(e){let t=e.querySelectorAll("qti-value");if(this.cardinality==="single"&&t.length>0)i=t[0].textContent.trim(),t[0].remove();else if(this.cardinality!=="single"){i=[];for(let r=0;r<t.length;r++)i.push(t[r].textContent.trim()),t[r].remove()}}return i}get mapping(){return this.querySelector("qti-mapping")}};X.styles=[b`
894
894
  :host {
895
895
  display: none;
896
896
  }
897
- `],n([d({type:String,attribute:"base-type"})],X.prototype,"baseType",2),n([d({type:String})],X.prototype,"identifier",2),n([d({type:String})],X.prototype,"cardinality",2),n([D({context:L,subscribe:!0}),C()],X.prototype,"itemContext",2),X=n([m("qti-response-declaration")],X);export{S as a,pe as b,Xe as c,xe as d,qe as e,Te as f,Me as g,we as h,de as i,ue as j,z as k,J as l,k as m,he as n,Se as o,me as p,fe as q,Y as r,_e as s,ke as t,be as u,Re as v,Ke as w,Le as x,Q as y,De as z,ee as A,U as B,He as C,B as D,se as E,Je as F,Ve as G,te as H,ve as I,$ as J,I as K,Ne as L,$e as M,Ie as N,dt as O,Ze as P,Oe as Q,O as R,Ge as S,ut as T,ht as U,mt as V,Pe as W,Fe as X,ft as Y,cr as Z,hr as _,Qe as $,gt as aa,bt as ba,et as ca,tt as da,vt as ea,yt as fa,xt as ga,Et as ha,Ct as ia,rt as ja,ye as ka,qt as la,Tt as ma,Mt as na,wt as oa,St as pa,_t as qa,ze as ra,kt as sa,it as ta,mr as ua,st as va,Rt as wa,Lt as xa,At as ya,ot as za,P as Aa,nt as Ba,F as Ca,X as Da};
897
+ `],n([d({type:String,attribute:"base-type"})],X.prototype,"baseType",2),n([d({type:String})],X.prototype,"identifier",2),n([d({type:String})],X.prototype,"cardinality",2),n([D({context:L,subscribe:!0}),C()],X.prototype,"itemContext",2),X=n([m("qti-response-declaration")],X);export{S as a,pe as b,Xe as c,xe as d,qe as e,Te as f,Me as g,we as h,de as i,ue as j,z as k,G as l,k as m,he as n,Se as o,me as p,fe as q,Y as r,_e as s,ke as t,be as u,Re as v,Ke as w,Le as x,te as y,De as z,re as A,U as B,He as C,B as D,oe as E,Je as F,Ve as G,ie as H,ve as I,N as J,O as K,$e as L,Ne as M,Oe as N,dt as O,Ze as P,Ie as Q,I as R,Ge as S,ut as T,ht as U,mt as V,Pe as W,Fe as X,ft as Y,cr as Z,hr as _,Qe as $,gt as aa,bt as ba,et as ca,tt as da,vt as ea,yt as fa,xt as ga,Et as ha,Ct as ia,rt as ja,ye as ka,qt as la,Tt as ma,Mt as na,wt as oa,St as pa,_t as qa,ze as ra,kt as sa,it as ta,mr as ua,st as va,Rt as wa,Lt as xa,At as ya,ot as za,P as Aa,nt as Ba,F as Ca,X as Da};
898
898
  /*! Bundled license information:
899
899
 
900
900
  lit-html/node/directives/if-defined.js: