@citolab/qti-components 7.1.4 → 7.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/cdn/chunks/chunk-24FGNKCD.js +1007 -0
  2. package/cdn/chunks/chunk-2GQCYBJ3.js +5 -0
  3. package/cdn/chunks/chunk-2OZT6A22.js +5 -0
  4. package/cdn/chunks/chunk-3AJ3S2FB.js +23 -0
  5. package/cdn/chunks/chunk-3M6EKDMW.js +1 -0
  6. package/cdn/chunks/chunk-3QCUKN7V.js +1 -0
  7. package/cdn/chunks/chunk-4LPUHBZG.js +5 -0
  8. package/cdn/chunks/chunk-5UN2ELTW.js +23 -0
  9. package/cdn/chunks/chunk-5VTVIA6M.js +23 -0
  10. package/cdn/chunks/chunk-6JHIITOD.js +1 -0
  11. package/cdn/chunks/chunk-7UDDUERA.js +1007 -0
  12. package/cdn/chunks/chunk-7ZNR6KCO.js +5 -0
  13. package/cdn/chunks/chunk-AAOFOYWA.js +5 -0
  14. package/cdn/chunks/chunk-AJMJQJUQ.js +5 -0
  15. package/cdn/chunks/chunk-CY2CQDCJ.js +5 -0
  16. package/cdn/chunks/chunk-D2GQ4BES.js +1 -0
  17. package/cdn/chunks/chunk-D3C4N6YO.js +8 -0
  18. package/cdn/chunks/chunk-D6WQKU5P.js +5 -0
  19. package/cdn/chunks/chunk-DMIFXRAW.js +5 -0
  20. package/cdn/chunks/chunk-DQ7GTTCX.js +5 -0
  21. package/cdn/chunks/chunk-DVRZBFAS.js +5 -0
  22. package/cdn/chunks/chunk-E6M5VAZC.js +1007 -0
  23. package/cdn/chunks/chunk-EJDPW23L.js +5 -0
  24. package/cdn/chunks/chunk-FWCOZSKN.js +5 -0
  25. package/cdn/chunks/chunk-G24US7VC.js +23 -0
  26. package/cdn/chunks/chunk-HCWGJCF3.js +1007 -0
  27. package/cdn/chunks/chunk-IUEV6I3Y.js +5 -0
  28. package/cdn/chunks/chunk-J4CI5WG7.js +23 -0
  29. package/cdn/chunks/chunk-JEZ3FDS2.js +1007 -0
  30. package/cdn/chunks/chunk-L7FX2BSJ.js +1007 -0
  31. package/cdn/chunks/chunk-L7G3YUQJ.js +23 -0
  32. package/cdn/chunks/chunk-LKOMJADF.js +5 -0
  33. package/cdn/chunks/chunk-M2YVQSR3.js +5 -0
  34. package/cdn/chunks/chunk-MADHY2TG.js +5 -0
  35. package/cdn/chunks/chunk-MCE2HPAI.js +23 -0
  36. package/cdn/chunks/chunk-MPVVJRN5.js +5 -0
  37. package/cdn/chunks/chunk-MYK3AVE5.js +5 -0
  38. package/cdn/chunks/chunk-NQUXPDU3.js +1 -0
  39. package/cdn/chunks/chunk-O64TZW6N.js +5 -0
  40. package/cdn/chunks/chunk-OM6BKR6U.js +5 -0
  41. package/cdn/chunks/chunk-PTEZUFUL.js +5 -0
  42. package/cdn/chunks/chunk-Q3MPB5OG.js +23 -0
  43. package/cdn/chunks/chunk-RC3C5C7I.js +5 -0
  44. package/cdn/chunks/chunk-RDREFUYQ.js +1007 -0
  45. package/cdn/chunks/chunk-RPBLXGHD.js +5 -0
  46. package/cdn/chunks/chunk-RWCWDO5R.js +5 -0
  47. package/cdn/chunks/chunk-SEJ6XHOU.js +1 -0
  48. package/cdn/chunks/chunk-SHZ5UCLJ.js +5 -0
  49. package/cdn/chunks/chunk-SRXFURHS.js +5 -0
  50. package/cdn/chunks/chunk-TJWJV2U3.js +5 -0
  51. package/cdn/chunks/chunk-URO7DOBX.js +1 -0
  52. package/cdn/chunks/chunk-UVCZCMPG.js +5 -0
  53. package/cdn/chunks/chunk-V2HYQXWT.js +1007 -0
  54. package/cdn/chunks/chunk-V6VPFEQB.js +1 -0
  55. package/cdn/chunks/chunk-V7S5DVXO.js +5 -0
  56. package/cdn/chunks/chunk-VAKXKPIY.js +1007 -0
  57. package/cdn/chunks/chunk-VCATS6AD.js +5 -0
  58. package/cdn/chunks/chunk-VGBHSWOI.js +5 -0
  59. package/cdn/chunks/chunk-VTBQWQOW.js +23 -0
  60. package/cdn/chunks/chunk-W567D2AF.js +1 -0
  61. package/cdn/chunks/chunk-WQFK6JFL.js +5 -0
  62. package/cdn/chunks/chunk-WRAB6IVU.js +5 -0
  63. package/cdn/chunks/chunk-WWNOVLDK.js +23 -0
  64. package/cdn/chunks/chunk-XJHAZYHN.js +1007 -0
  65. package/cdn/chunks/chunk-YCTL45GB.js +1 -0
  66. package/cdn/chunks/chunk-ZRWDLR2Y.js +5 -0
  67. package/cdn/index.global.js +1 -1
  68. package/cdn/index.js +1 -1
  69. package/cdn/qti-components/index.js +1 -1
  70. package/cdn/qti-item/components/item-container.js +1 -1
  71. package/cdn/qti-item/core/index.js +1 -1
  72. package/cdn/qti-loader/index.js +1 -1
  73. package/cdn/qti-test/components/index.js +1 -1
  74. package/cdn/qti-test/components/test-container.js +1 -1
  75. package/cdn/qti-test/components/test-show-correct-response.js +1 -1
  76. package/cdn/qti-test/core/index.js +1 -1
  77. package/cdn/qti-transformers/index.js +1 -1
  78. package/dist/chunks/chunk-2IXFDXDW.js +646 -0
  79. package/dist/chunks/chunk-2IXFDXDW.js.map +1 -0
  80. package/dist/chunks/chunk-2RRW2DFF.js +31 -0
  81. package/dist/chunks/chunk-2RRW2DFF.js.map +1 -0
  82. package/dist/chunks/chunk-2SENMECZ.js +383 -0
  83. package/dist/chunks/chunk-2SENMECZ.js.map +1 -0
  84. package/dist/chunks/chunk-2YIXNTLW.js +31 -0
  85. package/dist/chunks/chunk-2YIXNTLW.js.map +1 -0
  86. package/dist/chunks/chunk-323JSMZF.js +6888 -0
  87. package/dist/chunks/chunk-323JSMZF.js.map +1 -0
  88. package/dist/chunks/chunk-334SZRIZ.js +627 -0
  89. package/dist/chunks/chunk-334SZRIZ.js.map +1 -0
  90. package/dist/chunks/chunk-42QJNL24.js +383 -0
  91. package/dist/chunks/chunk-42QJNL24.js.map +1 -0
  92. package/dist/chunks/chunk-4QHU4ILT.js +627 -0
  93. package/dist/chunks/chunk-4QHU4ILT.js.map +1 -0
  94. package/dist/chunks/chunk-5LEN6QDS.js +31 -0
  95. package/dist/chunks/chunk-5LEN6QDS.js.map +1 -0
  96. package/dist/chunks/chunk-5QMNVSHC.js +94 -0
  97. package/dist/chunks/chunk-5QMNVSHC.js.map +1 -0
  98. package/dist/chunks/chunk-5WS6ZWUN.js +374 -0
  99. package/dist/chunks/chunk-5WS6ZWUN.js.map +1 -0
  100. package/dist/chunks/chunk-673CG4KG.js +94 -0
  101. package/dist/chunks/chunk-673CG4KG.js.map +1 -0
  102. package/dist/chunks/chunk-6VFH66FM.js +94 -0
  103. package/dist/chunks/chunk-6VFH66FM.js.map +1 -0
  104. package/dist/chunks/chunk-6YED6PQC.js +6888 -0
  105. package/dist/chunks/chunk-6YED6PQC.js.map +1 -0
  106. package/dist/chunks/chunk-75QW5V24.js +6888 -0
  107. package/dist/chunks/chunk-75QW5V24.js.map +1 -0
  108. package/dist/chunks/chunk-A5W753FL.js +92 -0
  109. package/dist/chunks/chunk-A5W753FL.js.map +1 -0
  110. package/dist/chunks/chunk-AVDZJOCT.js +400 -0
  111. package/dist/chunks/chunk-AVDZJOCT.js.map +1 -0
  112. package/dist/chunks/chunk-BCMG64M3.js +94 -0
  113. package/dist/chunks/chunk-BCMG64M3.js.map +1 -0
  114. package/dist/chunks/chunk-CHFTTHPJ.js +383 -0
  115. package/dist/chunks/chunk-CHFTTHPJ.js.map +1 -0
  116. package/dist/chunks/chunk-DT72VPM7.js +32 -0
  117. package/dist/chunks/chunk-DT72VPM7.js.map +1 -0
  118. package/dist/chunks/chunk-E2WYWXM3.js +6888 -0
  119. package/dist/chunks/chunk-E2WYWXM3.js.map +1 -0
  120. package/dist/chunks/chunk-E4XNZM6H.js +383 -0
  121. package/dist/chunks/chunk-E4XNZM6H.js.map +1 -0
  122. package/dist/chunks/chunk-ECTDE6XC.js +646 -0
  123. package/dist/chunks/chunk-ECTDE6XC.js.map +1 -0
  124. package/dist/chunks/chunk-EN7ICTLG.js +94 -0
  125. package/dist/chunks/chunk-EN7ICTLG.js.map +1 -0
  126. package/dist/chunks/chunk-EV2QQBO6.js +94 -0
  127. package/dist/chunks/chunk-EV2QQBO6.js.map +1 -0
  128. package/dist/chunks/chunk-FJI6VGC6.js +94 -0
  129. package/dist/chunks/chunk-FJI6VGC6.js.map +1 -0
  130. package/dist/chunks/chunk-FKUTUG6E.js +94 -0
  131. package/dist/chunks/chunk-FKUTUG6E.js.map +1 -0
  132. package/dist/chunks/chunk-FOAIUAWY.js +627 -0
  133. package/dist/chunks/chunk-FOAIUAWY.js.map +1 -0
  134. package/dist/chunks/chunk-GR52YZQB.js +31 -0
  135. package/dist/chunks/chunk-GR52YZQB.js.map +1 -0
  136. package/dist/chunks/chunk-GRT2RDCX.js +6888 -0
  137. package/dist/chunks/chunk-GRT2RDCX.js.map +1 -0
  138. package/dist/chunks/chunk-GT4B3SMY.js +94 -0
  139. package/dist/chunks/chunk-GT4B3SMY.js.map +1 -0
  140. package/dist/chunks/chunk-I6JSNAIT.js +627 -0
  141. package/dist/chunks/chunk-I6JSNAIT.js.map +1 -0
  142. package/dist/chunks/chunk-IKNXVVXK.js +32 -0
  143. package/dist/chunks/chunk-IKNXVVXK.js.map +1 -0
  144. package/dist/chunks/chunk-KJ5Y7Q3K.js +94 -0
  145. package/dist/chunks/chunk-KJ5Y7Q3K.js.map +1 -0
  146. package/dist/chunks/chunk-KNV7LPEA.js +94 -0
  147. package/dist/chunks/chunk-KNV7LPEA.js.map +1 -0
  148. package/dist/chunks/chunk-LCYRSF7H.js +6888 -0
  149. package/dist/chunks/chunk-LCYRSF7H.js.map +1 -0
  150. package/dist/chunks/chunk-LLVJY74K.js +373 -0
  151. package/dist/chunks/chunk-LLVJY74K.js.map +1 -0
  152. package/dist/chunks/chunk-LOCV27GA.js +31 -0
  153. package/dist/chunks/chunk-LOCV27GA.js.map +1 -0
  154. package/dist/chunks/chunk-LVPRIPTY.js +94 -0
  155. package/dist/chunks/chunk-LVPRIPTY.js.map +1 -0
  156. package/dist/chunks/chunk-MHPLSF7C.js +645 -0
  157. package/dist/chunks/chunk-MHPLSF7C.js.map +1 -0
  158. package/dist/chunks/chunk-MWVK6TYO.js +94 -0
  159. package/dist/chunks/chunk-MWVK6TYO.js.map +1 -0
  160. package/dist/chunks/chunk-NC7KY56H.js +627 -0
  161. package/dist/chunks/chunk-NC7KY56H.js.map +1 -0
  162. package/dist/chunks/chunk-O55K2M54.js +94 -0
  163. package/dist/chunks/chunk-O55K2M54.js.map +1 -0
  164. package/dist/chunks/chunk-PEV4JLKR.js +374 -0
  165. package/dist/chunks/chunk-PEV4JLKR.js.map +1 -0
  166. package/dist/chunks/chunk-POTLDXHV.js +627 -0
  167. package/dist/chunks/chunk-POTLDXHV.js.map +1 -0
  168. package/dist/chunks/chunk-QA5CX4HN.js +94 -0
  169. package/dist/chunks/chunk-QA5CX4HN.js.map +1 -0
  170. package/dist/chunks/chunk-QCZ76WFB.js +6888 -0
  171. package/dist/chunks/chunk-QCZ76WFB.js.map +1 -0
  172. package/dist/chunks/chunk-QS6VHKJL.js +94 -0
  173. package/dist/chunks/chunk-QS6VHKJL.js.map +1 -0
  174. package/dist/chunks/chunk-RVZE4R2K.js +400 -0
  175. package/dist/chunks/chunk-RVZE4R2K.js.map +1 -0
  176. package/dist/chunks/chunk-SGUZHURT.js +94 -0
  177. package/dist/chunks/chunk-SGUZHURT.js.map +1 -0
  178. package/dist/chunks/chunk-SJYWAAZE.js +31 -0
  179. package/dist/chunks/chunk-SJYWAAZE.js.map +1 -0
  180. package/dist/chunks/chunk-STQBRYLA.js +31 -0
  181. package/dist/chunks/chunk-STQBRYLA.js.map +1 -0
  182. package/dist/chunks/chunk-TAO7UEFH.js +400 -0
  183. package/dist/chunks/chunk-TAO7UEFH.js.map +1 -0
  184. package/dist/chunks/chunk-TC3OIHDQ.js +6888 -0
  185. package/dist/chunks/chunk-TC3OIHDQ.js.map +1 -0
  186. package/dist/chunks/chunk-TOJHUALI.js +646 -0
  187. package/dist/chunks/chunk-TOJHUALI.js.map +1 -0
  188. package/dist/chunks/chunk-TPAA44Y7.js +31 -0
  189. package/dist/chunks/chunk-TPAA44Y7.js.map +1 -0
  190. package/dist/chunks/chunk-TRYCV7IM.js +31 -0
  191. package/dist/chunks/chunk-TRYCV7IM.js.map +1 -0
  192. package/dist/chunks/chunk-TVNMKAMJ.js +645 -0
  193. package/dist/chunks/chunk-TVNMKAMJ.js.map +1 -0
  194. package/dist/chunks/chunk-U4RFKBRP.js +94 -0
  195. package/dist/chunks/chunk-U4RFKBRP.js.map +1 -0
  196. package/dist/chunks/chunk-UGLQ4IE6.js +94 -0
  197. package/dist/chunks/chunk-UGLQ4IE6.js.map +1 -0
  198. package/dist/chunks/chunk-UJFRZXCT.js +647 -0
  199. package/dist/chunks/chunk-UJFRZXCT.js.map +1 -0
  200. package/dist/chunks/chunk-UMF3ZNLB.js +627 -0
  201. package/dist/chunks/chunk-UMF3ZNLB.js.map +1 -0
  202. package/dist/chunks/chunk-UPOAW5KH.js +6888 -0
  203. package/dist/chunks/chunk-UPOAW5KH.js.map +1 -0
  204. package/dist/chunks/chunk-UYO3TSPZ.js +373 -0
  205. package/dist/chunks/chunk-UYO3TSPZ.js.map +1 -0
  206. package/dist/chunks/chunk-VDCLAPUT.js +627 -0
  207. package/dist/chunks/chunk-VDCLAPUT.js.map +1 -0
  208. package/dist/chunks/chunk-WEBEBLJU.js +94 -0
  209. package/dist/chunks/chunk-WEBEBLJU.js.map +1 -0
  210. package/dist/chunks/chunk-WWFGVIQF.js +627 -0
  211. package/dist/chunks/chunk-WWFGVIQF.js.map +1 -0
  212. package/dist/chunks/chunk-XBCKVU3I.js +94 -0
  213. package/dist/chunks/chunk-XBCKVU3I.js.map +1 -0
  214. package/dist/chunks/chunk-XOKC45VV.js +631 -0
  215. package/dist/chunks/chunk-XOKC45VV.js.map +1 -0
  216. package/dist/chunks/chunk-YHEITHMB.js +6888 -0
  217. package/dist/chunks/chunk-YHEITHMB.js.map +1 -0
  218. package/dist/chunks/chunk-YSGGRW2E.js +6888 -0
  219. package/dist/chunks/chunk-YSGGRW2E.js.map +1 -0
  220. package/dist/chunks/chunk-ZLOEM737.js +94 -0
  221. package/dist/chunks/chunk-ZLOEM737.js.map +1 -0
  222. package/dist/index.js +7 -7
  223. package/dist/qti-components/index.js +2 -2
  224. package/dist/qti-components-jsx.d.ts +8 -10
  225. package/dist/qti-item/components/item-container.js +2 -2
  226. package/dist/qti-item/core/index.js +2 -2
  227. package/dist/qti-loader/index.js +2 -2
  228. package/dist/qti-test/components/index.js +3 -3
  229. package/dist/qti-test/components/test-container.js +2 -2
  230. package/dist/qti-test/components/test-show-correct-response.js +1 -1
  231. package/dist/qti-test/core/index.js +3 -3
  232. package/dist/qti-transformers/index.d.ts +3 -14
  233. package/dist/qti-transformers/index.js +1 -1
  234. package/dist/vscode.html-custom-data.json +7 -8
  235. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import{a as O}from"./chunk-I7QUAG4I.js";import{a as w,b as M}from"./chunk-CZDMOYYF.js";import{a as I,b as y}from"./chunk-QQR6POPY.js";import{g as S}from"./chunk-XJHAZYHN.js";import{a as L}from"./chunk-G24US7VC.js";import{a as T,b as E}from"./chunk-5MY26RWE.js";import{a as b,b as r}from"./chunk-PT6SVREH.js";import{a as V,d as p,i as u}from"./chunk-SCPSWPAG.js";import{a as s}from"./chunk-IAP2CEE7.js";var A=o=>{class l extends o{constructor(...t){super(...t);this.cacheTransform=!1;this.addEventListener("qti-load-item-request",({detail:e})=>{e.promise=(async()=>(await L(this.cacheTransform).load(e.href,e.cancelPreviousRequest)).htmlDoc())()})}}return s([r({type:Boolean,attribute:"cache-transform"})],l.prototype,"cacheTransform",2),l};var R=o=>{class l extends o{constructor(...t){super(...t);this.navigate="item";this.addEventListener("qti-request-navigation",async({detail:e})=>{if(e?.id){if(e.type==="item"){await this._loadItems([e.id]);let n=e.id,c=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${e.id}"]`),m=c.closest("qti-test-part")?.identifier,x=c.closest("qti-assessment-section")?.identifier;this.sessionContext={...this.sessionContext,navPartId:m,navSectionId:x,navItemId:n,navItemLoading:!1}}else if(e.type==="section"){let n=this._getSectionItemIds(e.id);await this._loadItems(n);let c=e.id,x=(this._testElement?.querySelector(`qti-assessment-section[identifier="${c}"]`)).closest("qti-test-part")?.identifier;this.sessionContext={...this.sessionContext,navPartId:x,navSectionId:c,navItemId:null,navItemLoading:!1}}}}),this.addEventListener("qti-assessment-test-connected",e=>{this._testElement=e.detail;let n;this.navigate==="section"?n=this._testElement.querySelector("qti-assessment-section")?.identifier:n=this.sessionContext.navItemId??this._testElement.querySelector("qti-assessment-item-ref")?.identifier,n&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:this.navigate==="section"?"section":"item",id:n},bubbles:!0,composed:!0}))})}async _loadItems(t){let e;if(!this._testElement||t.length===0)return;let n=t.map(m=>this._testElement.querySelector(`qti-assessment-item-ref[identifier="${m}"]`));if(n.includes(null)){console.warn(`One or more items not found: ${t}`);return}this._clearLoadedItems(),this.sessionContext={...this.sessionContext,navItemLoading:!0};let c=n.map(async m=>m?{itemRef:m,doc:await this._loadItemRequest(m.href,m.identifier)}:null);try{e=await Promise.all(c),e.forEach(({itemRef:m,doc:x})=>{m&&x&&(m.xmlDoc=x)}),requestAnimationFrame(()=>{this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:e.map(({itemRef:m})=>({identifier:m?.identifier,element:m})),bubbles:!0,composed:!0}))})}catch(m){console.error("Error loading items:",m)}return e}_getSectionItemIds(t){return this._testElement?.querySelector(`qti-assessment-section[identifier="${t}"]`)?Array.from(this._testElement.querySelectorAll(`qti-assessment-section[identifier="${t}"] > qti-assessment-item-ref`)).map(n=>n.identifier):(console.warn(`Section with identifier "${t}" not found.`),[])}_clearLoadedItems(){let t=this._testElement?.querySelectorAll("qti-assessment-test qti-assessment-item-ref");Array.from(t||[]).forEach(e=>{e.xmlDoc=null})}_loadItemRequest(t,e){let n=new CustomEvent("qti-load-item-request",{bubbles:!0,composed:!0,detail:{href:t,identifier:e,promise:null}});return this.dispatchEvent(n),n.detail.promise}}return s([r({type:String})],l.prototype,"navigate",2),l};var N=o=>{class l extends o{constructor(...i){super(...i),this.sessionContext={...this.sessionContext,view:"candidate"},this.addEventListener("on-test-switch-view",t=>{this.sessionContext={...this.sessionContext,view:t.detail},this._updateElementView()}),this.addEventListener("qti-assessment-test-connected",()=>{this._updateElementView()}),this.addEventListener("qti-assessment-item-connected",t=>{this._updateElementView(),this._setCorrectResponseVisibility(t.detail)})}willUpdate(i){super.willUpdate(i),i.has("sessionContext")&&this._updateElementView()}_updateElementView(){if(this._testElement&&this._testElement){Array.from(this._testElement.querySelectorAll("[view]")).forEach(e=>{e.classList.toggle("show",e.getAttribute("view")===this.sessionContext.view)});let t=this._testElement.querySelector(`qti-assessment-item[identifier="${this.sessionContext.navItemId}"]`);t&&t.showCorrectResponse(this.sessionContext.view==="scorer")}}_setCorrectResponseVisibility(i){i.showCorrectResponse(this.sessionContext.view==="scorer")}}return l};var v=class extends u{constructor(){super();this.testContext=I;this.sessionContext=w;this._updateItemInTestContext=a=>{let i=a._context,t=i.identifier,e=i.variables,n=this.testContext.items.find(c=>c?.identifier===t);if(!n){console.warn(`Item IDs between assessment.xml and item.xml should match: ${t} is not found!`);return}n.variables?.length===1?this._updateItemVariablesInTestContext(t,e):a.variables=[...n.variables||[]]};this.addEventListener("qti-assessment-test-connected",a=>{if(this.testContext=I,this.sessionContext=w,this.testContext&&this.testContext.items.length>0)return;this._testElement=a.detail;let i=Array.from(this._testElement.querySelectorAll("qti-assessment-item-ref")).map(t=>({href:t.href,identifier:t.identifier,category:t.category,variables:[{identifier:"completionStatus",value:"not_attempted",type:"outcome"}]}));this.testContext={...this.testContext,items:i}}),this.addEventListener("qti-assessment-item-connected",a=>{let i=a.detail,t=i.closest("qti-assessment-item-ref")?.identifier;t&&(i.assessmentItemRefId=t),this._updateItemInTestContext(a.detail)}),this.addEventListener("qti-item-context-updated",a=>{this._updateItemVariablesInTestContext(a.detail.itemContext.identifier,a.detail.itemContext.variables)})}_updateItemVariablesInTestContext(a,i){this.testContext={...this.testContext,items:this.testContext.items.map(t=>t.identifier!==a?t:{...t,variables:i.map(e=>{let n=t.variables.find(c=>c.identifier===e.identifier);return n?{...n,...e}:e})})},this.dispatchEvent(new CustomEvent("qti-test-context-updated",{detail:this.testContext,bubbles:!1,composed:!1}))}};s([r({attribute:!1,type:Object}),T({context:y})],v.prototype,"testContext",2),s([r({attribute:!1,type:Object}),T({context:M})],v.prototype,"sessionContext",2);var D=o=>{class l extends o{constructor(...i){super(...i),this.addEventListener("qti-register-variable",t=>{this.testContext={...this.testContext,testOutcomeVariables:[...this.testContext.testOutcomeVariables||[],t.detail.variable]},t.stopPropagation()}),this.addEventListener("qti-set-outcome-value",t=>{let{outcomeIdentifier:e,value:n}=t.detail;this.updateOutcomeVariable(e,n),t.stopPropagation()})}outcomeProcessing(){let i=this.querySelector("qti-outcome-processing");return i?(i?.process(),!0):!1}updateOutcomeVariable(i,t){let e=this.getOutcome(i);if(!e){console.warn(`Can not set qti-outcome-identifier: ${i}, it is not available`);return}this.testContext={...this.testContext,testOutcomeVariables:this.testContext.testOutcomeVariables?.map(n=>n.identifier!==i?n:{...n,value:e.cardinality==="single"?t:[...n.value,t]})}}getOutcome(i){return this.getVariable(i)}getVariable(i){return this.testContext.testOutcomeVariables?.find(t=>t.identifier===i)||null}}return l};var q=class extends A(R(N(D(v)))){async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:this}))}render(){return p`<slot></slot>`}};q=s([b("qti-test")],q);var P={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},h=class extends u{constructor(){super(...arguments);this.weigths=new Map}createRenderRoot(){return this}get assessmentItem(){return this.renderRoot?.querySelector("qti-assessment-item")}async connectedCallback(){super.connectedCallback();let a=this.getRootNode().host.closest("qti-test").querySelector("template[item-ref]");a&&(this.myTemplate=O(a)),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-item-ref-connected",{bubbles:!0,composed:!0,detail:{identifier:this.identifier,href:this.href,category:this.category}}))}render(){return this.myTemplate?this.myTemplate({xmlDoc:this.xmlDoc}):this.xmlDoc}};s([r({type:String})],h.prototype,"category",2),s([r({type:String})],h.prototype,"identifier",2),s([r({type:Boolean,converter:P})],h.prototype,"required",2),s([r({type:Boolean,converter:P})],h.prototype,"fixed",2),s([r({type:String})],h.prototype,"href",2),s([r({type:Object,attribute:!1})],h.prototype,"xmlDoc",2);customElements.get("qti-assessment-item-ref")||customElements.define("qti-assessment-item-ref",h);var _={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},d=class extends u{async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-assessment-section-connected",{bubbles:!0,composed:!0}))}render(){return p`<slot name="qti-rubric-block"></slot><slot></slot>`}};s([r({type:String})],d.prototype,"identifier",2),s([r({type:String})],d.prototype,"required",2),s([r({type:Boolean,converter:_})],d.prototype,"fixed",2),s([r({type:String})],d.prototype,"title",2),s([r({type:Boolean,converter:_})],d.prototype,"visible",2),s([r({type:Boolean,converter:_,attribute:"keep-together"})],d.prototype,"keepTogether",2),s([E({context:y,subscribe:!0})],d.prototype,"_testContext",2);customElements.get("qti-assessment-section")||customElements.define("qti-assessment-section",d);var g=class extends u{async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-test-connected",{detail:this,bubbles:!0,composed:!0}))}render(){return p` <slot></slot>`}};s([r({type:String})],g.prototype,"identifier",2),s([r({type:String})],g.prototype,"title",2),s([E({context:y,subscribe:!0})],g.prototype,"_testContext",2),g=s([b("qti-assessment-test")],g);var f=class extends u{constructor(){super(...arguments);this.identifier="";this.title="";this.class="";this.NavigationMode="nonlinear";this.submissionMode="individual"}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-test-part-connected",{bubbles:!0,composed:!0}))}render(){return p` <slot></slot>`}};s([r({type:String})],f.prototype,"identifier",2),s([r({type:String})],f.prototype,"title",2),s([r({type:String})],f.prototype,"class",2),s([r({type:String,attribute:"navigation-mode"})],f.prototype,"NavigationMode",2),s([r({type:String,attribute:"submission-mode"})],f.prototype,"submissionMode",2),f=s([b("qti-test-part")],f);customElements.get("qti-test-part")||customElements.define("qti-test-part",f);var C=class extends S{render(){return p``}};C.styles=V`
2
+ :host {
3
+ color: gray;
4
+ }
5
+ `,C=s([b("qti-test-feedback")],C);export{q as a,h as b,d as c,g as d,f as e,C as f};
@@ -0,0 +1,23 @@
1
+ var C=String.raw,E=C`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2
+ <xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
3
+ <xsl:template match="@*|node()">
4
+ <xsl:copy>
5
+ <xsl:apply-templates select="@*|node()"/>
6
+ </xsl:copy>
7
+ </xsl:template>
8
+
9
+ <!-- remove existing namespaces -->
10
+ <xsl:template match="*">
11
+ <!-- remove element prefix -->
12
+ <xsl:element name="{local-name()}">
13
+ <!-- process attributes -->
14
+ <xsl:for-each select="@*">
15
+ <!-- remove attribute prefix -->
16
+ <xsl:attribute name="{local-name()}">
17
+ <xsl:value-of select="."/>
18
+ </xsl:attribute>
19
+ </xsl:for-each>
20
+ <xsl:apply-templates/>
21
+ </xsl:element>
22
+ </xsl:template>
23
+ </xsl:stylesheet>`;function L(n,e,t){n.querySelectorAll(e).forEach(r=>{let s=`${e}-${t}`,o=S(r,s);r.replaceWith(o)})}function q(n,e){n.querySelectorAll("*").forEach(t=>{let r=t.classList;r&&r.forEach(s=>{if(s.startsWith(`${e}:`)){let o=s.slice(`${e}:`.length),a=`${t.nodeName}-${o}`,c=S(t,a);t.replaceWith(c)}})})}function S(n,e){let t=document.createElement(e);for(let r of n.attributes)t.setAttribute(r.name,r.value);for(;n.firstChild;)t.appendChild(n.firstChild);return t}function M(n){let e=[];return n.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let r=t.getAttribute("identifier"),s=t.getAttribute("href"),o=t.getAttribute("category");e.push({identifier:r,href:s,category:o})}),e}var A=null;function f(n,e=!1){return e&&A!==null&&A.abort(),new Promise((t,r)=>{let s=new XMLHttpRequest;A=s,s.open("GET",n,!0),s.responseType="document",s.onload=()=>{s.status>=200&&s.status<300?t(s.responseXML):r(s.statusText)},s.onerror=()=>{r(s.statusText)},s.send()})}function p(n){return new DOMParser().parseFromString(n,"text/xml")}function g(n){let e=new XSLTProcessor,t=new DOMParser().parseFromString(E,"text/xml");return e.importStylesheet(t),e.transformToFragment(n,document)}function x(n,e){e.endsWith("/")||(e+="/"),n.querySelectorAll("[src],[href],[primary-path]").forEach(t=>{let r="";t.getAttribute("src")&&(r="src"),t.getAttribute("href")&&(r="href"),t.getAttribute("primary-path")&&(r="primary-path");let s=t.getAttribute(r)?.trim();if(!s.startsWith("data:")&&!s.startsWith("http")){let o=e+encodeURI(s);t.setAttribute(r,o)}})}function D(n){n.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let r=document.createComment(t.textContent);t.replaceChild(r,t.firstChild)})}function w(n){n.querySelectorAll("qti-stylesheet").forEach(e=>e.remove())}function I(n){switch(n){case"qti-choice-interaction":case"qti-order-interaction":return"qti-simple-choice";case"qti-inline-choice-interaction":return"qti-inline-choice";case"qti-match-interaction":return["qti-simple-match-set:first-of-type qti-simple-associable-choice","qti-simple-match-set:last-of-type > qti-simple-associable-choice"];case"qti-gap-match-interaction":return"qti-gap-text";case"qti-associate-interaction":return"qti-simple-associable-choice";default:}}var P=(n=!1)=>{let e,t={async load(r,s=!1){let o=encodeURI(r);return n&&sessionStorage.getItem(o)?Promise.resolve(t.parse(sessionStorage.getItem(o))):new Promise(a=>{f(r,s).then(c=>(e=c,t.shuffleInteractions().path(r.substring(0,r.lastIndexOf("/"))),n&&sessionStorage.setItem(o,new XMLSerializer().serializeToString(e)),a(t)))})},parse(r){return e=p(r),t},path:r=>(x(e,r),t),fn(r){return r(e),t},pciHooks(r){let s=["hook","module"],o=r.substring(0,r.lastIndexOf("/"));for(let a of s)e.querySelectorAll("["+a+"]").forEach(h=>{let l=h.getAttribute(a);!l.startsWith("data:")&&!l.startsWith("http")&&(h.setAttribute("base-url",r),h.setAttribute("module",o+"/"+encodeURI(l+(l.endsWith(".js")?"":".js"))))});return t},shuffleInteractions(){let r=e.querySelectorAll('[shuffle="true"]'),s=Array.from(r).filter(o=>o.tagName?.toLowerCase().endsWith("-interaction"));for(let o of s){let a=I(o.tagName.toLowerCase()),c=Array.isArray(a)?a:[a];for(let h of c){let l=Array.from(o.querySelectorAll(h)),y=l.map((i,u)=>({element:i,fixed:i.hasAttribute("fixed")&&i.getAttribute("fixed")==="true",originalOrder:u})).filter(i=>i.fixed),m=l.filter(i=>!i.hasAttribute("fixed")||i.getAttribute("fixed")!=="true");if(m.length<=1)return console.warn("Shuffling is not possible with fewer than 2 non-fixed elements."),t;let X=[...m],d=!1,b=0;for(;!d&&b<20;){b++;for(let i=m.length-1;i>0;i--){let u=Math.floor(Math.random()*(i+1));[m[i],m[u]]=[m[u],m[i]]}d=!m.every((i,u)=>i===X[u])}if(!d)return console.warn("Failed to shuffle the choices after multiple attempts."),null;o.removeAttribute("shuffle");let T=0;for(let i of m)i.parentElement.insertBefore(i,y[T]?.element),T++;for(let i of y)i.element.parentElement.insertBefore(i.element,m[i.originalOrder])}}return t},extendElementName:(r,s)=>(L(e,r,s),t),extendElementsWithClass:(r="extend")=>(q(e,r),t),customInteraction(r,s){let o=e.querySelector("qti-custom-interaction"),a=o.querySelector("object");return o.setAttribute("data-base-ref",r),o.setAttribute("data-base-item",r+s),o.setAttribute("data",a.getAttribute("data")),o.setAttribute("width",a.getAttribute("width")),o.setAttribute("height",a.getAttribute("height")),o.removeChild(a),t},convertCDATAtoComment(){return D(e),t},stripStyleSheets(){return w(e),t},html(){return new XMLSerializer().serializeToString(g(e))},xml(){return new XMLSerializer().serializeToString(e)},htmlDoc(){return g(e)},xmlDoc(){return e}};return t};var W=()=>{let n,e={async load(t){return new Promise(r=>{f(t).then(s=>(n=s,r(e)))})},parse(t){n=p(t)},assessmentTest(){let t=n.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:t.getAttribute("href"),identifier:t.getAttribute("identifier")}}};return e};var R=()=>{let n,e={async load(t){return new Promise((r,s)=>{f(t).then(o=>(n=o,e.path(t.substring(0,t.lastIndexOf("/"))),r(e)))})},parse(t){return n=p(t),e},path:t=>(x(n,t),e),fn(t){return t(n),e},items(){return M(n)},html(){return new XMLSerializer().serializeToString(g(n))},xml(){return new XMLSerializer().serializeToString(n)},htmlDoc(){return g(n)},xmlDoc(){return n}};return e};export{P as a,W as b,R as c};