@citolab/qti-components 7.0.11 → 7.0.12
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.
- package/cdn/chunks/chunk-34HKCUN3.js +1 -0
- package/cdn/chunks/chunk-4HUJGZW6.js +1 -0
- package/cdn/chunks/chunk-7HFMTJAH.js +1 -0
- package/cdn/chunks/chunk-ARBRHQDY.js +951 -0
- package/cdn/chunks/chunk-BGM3IB5N.js +8 -0
- package/cdn/chunks/chunk-CIN2QCYB.js +3537 -0
- package/cdn/chunks/chunk-DJM7EUKM.js +1 -0
- package/cdn/chunks/chunk-F7RWORNK.js +951 -0
- package/cdn/chunks/chunk-HD7EMR2A.js +1 -0
- package/cdn/chunks/chunk-HEKMMOBI.js +1 -0
- package/cdn/chunks/chunk-I76GONMP.js +951 -0
- package/cdn/chunks/chunk-KVCXK3CQ.js +8 -0
- package/cdn/chunks/chunk-LICVWYUY.js +3537 -0
- package/cdn/chunks/chunk-LWN3NRJE.js +3560 -0
- package/cdn/chunks/chunk-MBWNNFLY.js +951 -0
- package/cdn/chunks/chunk-MCTQZZG4.js +1 -0
- package/cdn/chunks/chunk-NGC3MISE.js +1 -0
- package/cdn/chunks/chunk-NP3JIBVS.js +1 -0
- package/cdn/chunks/chunk-NTR5PVWP.js +3560 -0
- package/cdn/chunks/chunk-P2YEZLMB.js +951 -0
- package/cdn/chunks/chunk-QWJABXM7.js +951 -0
- package/cdn/chunks/chunk-TCHROQU3.js +1 -0
- package/cdn/chunks/chunk-TSTGSXP2.js +951 -0
- package/cdn/chunks/chunk-V6G6L6I3.js +3537 -0
- package/cdn/exports/computed-item.context.js +1 -0
- package/cdn/exports/qti-condition-expression.js +1 -1
- package/cdn/exports/qti-expression.js +1 -1
- package/cdn/index.global.js +1 -1
- package/cdn/index.js +1 -1
- package/cdn/qti-components/index.js +1 -1
- package/cdn/qti-item/core/index.js +1 -1
- package/cdn/qti-test/components/index.js +1 -1
- package/cdn/qti-test/components/test-navigation.js +1 -1
- package/cdn/qti-test/components/test-next.js +1 -1
- package/cdn/qti-test/components/test-paging-buttons-stamp.js +1 -1
- package/cdn/qti-test/components/test-prev.js +1 -1
- package/cdn/qti-test/components/test-print-item-variables.js +1 -1
- package/cdn/qti-test/components/test-section-buttons-stamp.js +1 -1
- package/cdn/qti-test/components/test-view.js +1 -1
- package/cdn/qti-test/core/index.js +1 -1
- package/dist/chunks/chunk-4QYZHR36.js +6541 -0
- package/dist/chunks/chunk-4QYZHR36.js.map +1 -0
- package/dist/chunks/chunk-5QYVCPUS.js +3775 -0
- package/dist/chunks/chunk-5QYVCPUS.js.map +1 -0
- package/dist/chunks/chunk-6Z5YR5U2.js +8 -0
- package/dist/chunks/chunk-6Z5YR5U2.js.map +1 -0
- package/dist/chunks/chunk-7YUCREDM.js +3783 -0
- package/dist/chunks/chunk-7YUCREDM.js.map +1 -0
- package/dist/chunks/chunk-BIQNE2L4.js +6558 -0
- package/dist/chunks/chunk-BIQNE2L4.js.map +1 -0
- package/dist/chunks/chunk-CBSVVXVJ.js +6558 -0
- package/dist/chunks/chunk-CBSVVXVJ.js.map +1 -0
- package/dist/chunks/chunk-D4QP2AIX.js +222 -0
- package/dist/chunks/chunk-D4QP2AIX.js.map +1 -0
- package/dist/chunks/chunk-DACJEGD7.js +95 -0
- package/dist/chunks/chunk-DACJEGD7.js.map +1 -0
- package/dist/chunks/chunk-EFTOJP3Z.js +99 -0
- package/dist/chunks/chunk-EFTOJP3Z.js.map +1 -0
- package/dist/chunks/chunk-FSIQI3KQ.js +6541 -0
- package/dist/chunks/chunk-FSIQI3KQ.js.map +1 -0
- package/dist/chunks/chunk-KOQLAE5C.js +211 -0
- package/dist/chunks/chunk-KOQLAE5C.js.map +1 -0
- package/dist/chunks/chunk-KX5XK2I2.js +636 -0
- package/dist/chunks/chunk-KX5XK2I2.js.map +1 -0
- package/dist/chunks/chunk-LUJE2OUT.js +637 -0
- package/dist/chunks/chunk-LUJE2OUT.js.map +1 -0
- package/dist/chunks/chunk-M3ODN2LD.js +30 -0
- package/dist/chunks/chunk-M3ODN2LD.js.map +1 -0
- package/dist/chunks/chunk-O233FYKS.js +45 -0
- package/dist/chunks/chunk-O233FYKS.js.map +1 -0
- package/dist/chunks/chunk-STT3B34J.js +43 -0
- package/dist/chunks/chunk-STT3B34J.js.map +1 -0
- package/dist/chunks/chunk-TYV2BDMU.js +8 -0
- package/dist/chunks/chunk-TYV2BDMU.js.map +1 -0
- package/dist/chunks/chunk-UDUW5VX5.js +6545 -0
- package/dist/chunks/chunk-UDUW5VX5.js.map +1 -0
- package/dist/chunks/chunk-UIVMRBML.js +230 -0
- package/dist/chunks/chunk-UIVMRBML.js.map +1 -0
- package/dist/chunks/chunk-VYXSKCOZ.js +3706 -0
- package/dist/chunks/chunk-VYXSKCOZ.js.map +1 -0
- package/dist/chunks/chunk-X4BXOQJA.js +6558 -0
- package/dist/chunks/chunk-X4BXOQJA.js.map +1 -0
- package/dist/exports/computed-item.context.d.ts +16 -0
- package/dist/exports/computed-item.context.js +8 -0
- package/dist/exports/computed-item.context.js.map +1 -0
- package/dist/exports/computed.context.d.ts +4 -11
- package/dist/exports/computed.context.js +1 -1
- package/dist/exports/session.context.d.ts +2 -2
- package/dist/index.d.ts +5 -4
- package/dist/index.js +21 -16
- package/dist/qti-components/index.d.ts +2 -2
- package/dist/qti-components/index.js +2 -2
- package/dist/qti-components-jsx.d.ts +27 -1
- package/dist/qti-item/core/index.d.ts +35 -1
- package/dist/qti-item/core/index.js +6 -1
- package/dist/qti-loader/index.d.ts +2 -2
- package/dist/qti-response-declaration-CBb7rZqd.d.ts +1054 -0
- package/dist/qti-response-declaration-CgrlodE6.d.ts +1052 -0
- package/dist/qti-response-declaration-DZzGH8xM.d.ts +1057 -0
- package/dist/qti-response-declaration-DbMCe0zZ.d.ts +1052 -0
- package/dist/qti-test/components/index.d.ts +3 -2
- package/dist/qti-test/components/index.js +12 -12
- package/dist/qti-test/components/test-navigation.d.ts +4 -3
- package/dist/qti-test/components/test-navigation.js +2 -2
- package/dist/qti-test/components/test-next.d.ts +1 -0
- package/dist/qti-test/components/test-next.js +2 -2
- package/dist/qti-test/components/test-paging-buttons-stamp.js +2 -2
- package/dist/qti-test/components/test-prev.d.ts +1 -0
- package/dist/qti-test/components/test-prev.js +2 -2
- package/dist/qti-test/components/test-print-item-variables.d.ts +1 -0
- package/dist/qti-test/components/test-print-item-variables.js +2 -2
- package/dist/qti-test/components/test-section-buttons-stamp.js +2 -2
- package/dist/qti-test/core/index.d.ts +4 -4
- package/dist/qti-test/core/index.js +1 -1
- package/dist/qti-test-part-B8Dq08t9.d.ts +85 -0
- package/dist/qti-test-part-BYdORfcD.d.ts +85 -0
- package/dist/qti-test-part-CQycFqJC.d.ts +85 -0
- package/dist/qti-test-part-a-IuoG8-.d.ts +85 -0
- package/dist/vscode.html-custom-data.json +12 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as S}from"./chunk-KQPTKMFJ.js";import{a as g}from"./chunk-KDO3T66B.js";import{a as C,b as n,c as T}from"./chunk-5GCSZ3CH.js";import{d as l,i as u}from"./chunk-LZZB4VGC.js";import{a as w}from"./chunk-5FCXUJAG.js";import{a as q,b as v}from"./chunk-M5PPZ5M3.js";import{a as s}from"./chunk-IAP2CEE7.js";var R=(o,m)=>sessionStorage.setItem(o,JSON.stringify(m)),A=o=>sessionStorage.getItem(o)?JSON.parse(sessionStorage.getItem(o)):null,V=o=>{class m extends o{constructor(...t){super(...t);this.autoStoreRestoreContext=null;this.navItemId=null;this.addEventListener("qti-load-item-request",({detail:e})=>{e.promise=(async()=>(await w().load(`${e.href}`,e.cancelPreviousRequest)).htmlDoc())()})}async connectedCallback(){if(super.connectedCallback(),this.navItemId&&(this.sessionContext={...this.sessionContext,navItemId:this.navItemId}),this.autoStoreRestoreContext){let t=A(this.autoStoreRestoreContext);t&&(this.testContext=t)}}updated(t){t.has("testContext")&&this.autoStoreRestoreContext&&R(this.autoStoreRestoreContext,this.testContext)}}return s([n({type:String,attribute:"auto-store-restore"})],m.prototype,"autoStoreRestoreContext",2),s([n({type:String,attribute:"nav-item-id"})],m.prototype,"navItemId",2),m};var _=o=>{class m 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 r=e.id,h=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${e.id}"]`),a=h.closest("qti-test-part")?.identifier,x=h.closest("qti-assessment-section")?.identifier;this.sessionContext={...this.sessionContext,navPartId:a,navSectionId:x,navItemId:r,navItemLoading:!1}}else if(e.type==="section"){let r=this._getSectionItemIds(e.id);await this._loadItems(r);let h=e.id,x=(this._testElement?.querySelector(`qti-assessment-section[identifier="${h}"]`)).closest("qti-test-part")?.identifier;this.sessionContext={...this.sessionContext,navPartId:x,navSectionId:h,navItemId:null,navItemLoading:!1}}}}),this.addEventListener("qti-assessment-test-connected",e=>{this._testElement=e.detail;let r;this.navigate==="section"?r=this._testElement.querySelector("qti-assessment-section")?.identifier:r=this.sessionContext.navItemId??this._testElement.querySelector("qti-assessment-item-ref")?.identifier,r&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:this.navigate==="section"?"section":"item",id:r},bubbles:!0,composed:!0}))})}async _loadItems(t){let e;if(!this._testElement||t.length===0)return;let r=t.map(a=>this._testElement.querySelector(`qti-assessment-item-ref[identifier="${a}"]`));if(r.includes(null)){console.warn(`One or more items not found: ${t}`);return}this._clearLoadedItems(),this.sessionContext={...this.sessionContext,navItemLoading:!0};let h=r.map(async a=>a?{itemRef:a,doc:await this._loadItemRequest(a.href)}:null);try{e=await Promise.all(h),e.forEach(({itemRef:a,doc:x})=>{a&&x&&(a.xmlDoc=x)}),requestAnimationFrame(()=>{this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:e.map(({itemRef:a})=>({identifier:a?.identifier,element:a})),bubbles:!0,composed:!0})),console.info(`Loaded ${e.length} items successfully.`)})}catch(a){console.error("Error loading items:",a)}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(r=>r.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){let e=new CustomEvent("qti-load-item-request",{bubbles:!0,composed:!0,detail:{href:t,promise:null}});return this.dispatchEvent(e),e.detail.promise}}return s([n({type:String})],m.prototype,"navigate",2),m};var L=o=>{class m 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 m};var y=class extends u{constructor(){super();this.testContext={items:[],testOutcomeVariables:[]};this.sessionContext={};this._updateItemInTestContext=c=>{let{identifier:i,variables:t}=c,e=this.testContext.items.find(r=>r?.identifier===i);if(!e){console.warn(`Item IDs between assessment.xml and item.xml should match: ${i} is not found!`);return}e.variables?.length===1?this._updateItemVariablesInTestContext(i,t):c.variables=[...e.variables||[]]};this.addEventListener("qti-assessment-test-connected",c=>{if(this.testContext&&this.testContext.items.length>0)return;this.testElement=c.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",c=>{this._updateItemInTestContext(c.detail)}),this.addEventListener("qti-outcome-changed",c=>{let i=c.composedPath()[0];this._updateItemVariablesInTestContext(i.identifier,i.variables)})}_updateItemVariablesInTestContext(c,i){this.testContext={...this.testContext,items:this.testContext.items.map(t=>t.identifier!==c?t:{...t,variables:i.map(e=>{let r=t.variables.find(h=>h.identifier===e.identifier);return r?{...r,...e}:e})})}}};s([T(),q({context:g})],y.prototype,"testContext",2),s([T(),q({context:S})],y.prototype,"sessionContext",2);var M=o=>{class m 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:r}=t.detail;this.updateOutcomeVariable(e,r),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(r=>r.identifier!==i?r:{...r,value:e.cardinality==="single"?t:[...r.value,t]})}}getOutcome(i){return this.getVariable(i)}getVariable(i){return this.testContext.testOutcomeVariables?.find(t=>t.identifier===i)||null}}return m};var E=class extends V(_(L(M(y)))){async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:this}))}render(){return l`<slot></slot>`}};E=s([C("qti-test")],E);var O={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},d=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(),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 l`${this.xmlDoc}`}};s([n({type:String})],d.prototype,"category",2),s([n({type:String})],d.prototype,"identifier",2),s([n({type:Boolean,converter:O})],d.prototype,"required",2),s([n({type:Boolean,converter:O})],d.prototype,"fixed",2),s([n({type:String})],d.prototype,"href",2),s([v({context:g,subscribe:!0})],d.prototype,"_testContext",2),s([n({type:Object,attribute:!1})],d.prototype,"xmlDoc",2);customElements.get("qti-assessment-item-ref")||customElements.define("qti-assessment-item-ref",d);var I={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},p=class extends u{async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-assessment-section-connected",{bubbles:!0,composed:!0}))}render(){return l`<slot name="qti-rubric-block"></slot><slot></slot>`}};s([n({type:String})],p.prototype,"identifier",2),s([n({type:String})],p.prototype,"required",2),s([n({type:Boolean,converter:I})],p.prototype,"fixed",2),s([n({type:String})],p.prototype,"title",2),s([n({type:Boolean,converter:I})],p.prototype,"visible",2),s([n({type:Boolean,converter:I,attribute:"keep-together"})],p.prototype,"keepTogether",2),s([v({context:g,subscribe:!0})],p.prototype,"_testContext",2);customElements.get("qti-assessment-section")||customElements.define("qti-assessment-section",p);var b=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 l` <slot></slot>`}};s([n({type:String})],b.prototype,"identifier",2),s([n({type:String})],b.prototype,"title",2),s([v({context:g,subscribe:!0})],b.prototype,"_testContext",2),b=s([C("qti-assessment-test")],b);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 l` <slot></slot>`}};s([n({type:String})],f.prototype,"identifier",2),s([n({type:String})],f.prototype,"title",2),s([n({type:String})],f.prototype,"class",2),s([n({type:String,attribute:"navigation-mode"})],f.prototype,"NavigationMode",2),s([n({type:String,attribute:"submission-mode"})],f.prototype,"submissionMode",2),f=s([C("qti-test-part")],f);customElements.get("qti-test-part")||customElements.define("qti-test-part",f);export{E as a,d as b,p as c,b as d,f as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as l}from"./chunk-PZ7WEWHR.js";import{a as p}from"./chunk-5GCSZ3CH.js";import{d as r,i as a}from"./chunk-LZZB4VGC.js";import{a as i}from"./chunk-IKDNYCM7.js";import{b as n}from"./chunk-M5PPZ5M3.js";import{a as m}from"./chunk-IAP2CEE7.js";var t=class extends a{createRenderRoot(){return this}constructor(){super(),this._internals=this.attachInternals(),this._internals.ariaLabel="pagination"}connectedCallback(){super.connectedCallback();let e=this.querySelector("template");this.myTemplate=l(e)}render(){if(!this.computedContext)return r``;let e=this.computedContext.testParts.flatMap(o=>o.sections.flatMap(s=>s.items));return r` ${e.map(o=>this.myTemplate({item:o}))} `}};m([n({context:i,subscribe:!0})],t.prototype,"computedContext",2),t=m([p("test-paging-buttons-stamp")],t);export{t as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as S}from"./chunk-KQPTKMFJ.js";import{a as g}from"./chunk-KDO3T66B.js";import{a as w}from"./chunk-5FCXUJAG.js";import{a as C,b as n,c as I}from"./chunk-5GCSZ3CH.js";import{d as l,i as u}from"./chunk-LZZB4VGC.js";import{a as q,b as v}from"./chunk-M5PPZ5M3.js";import{a as s}from"./chunk-IAP2CEE7.js";var R=(o,m)=>sessionStorage.setItem(o,JSON.stringify(m)),A=o=>sessionStorage.getItem(o)?JSON.parse(sessionStorage.getItem(o)):null,V=o=>{class m extends o{constructor(...t){super(...t);this.autoStoreRestoreContext=null;this.navItemId=null;this.addEventListener("qti-load-item-request",({detail:e})=>{e.promise=(async()=>(await w().load(`${e.href}`,e.cancelPreviousRequest)).htmlDoc())()})}async connectedCallback(){if(super.connectedCallback(),this.navItemId&&(this.sessionContext={...this.sessionContext,navItemId:this.navItemId}),this.autoStoreRestoreContext){let t=A(this.autoStoreRestoreContext);t&&(this.testContext=t)}}updated(t){t.has("navItemId")&&(this.sessionContext={...this.sessionContext,navItemId:this.navItemId}),t.has("testContext")&&this.autoStoreRestoreContext&&R(this.autoStoreRestoreContext,this.testContext)}}return s([n({type:String,attribute:"auto-store-restore"})],m.prototype,"autoStoreRestoreContext",2),s([n({type:String,attribute:"nav-item-id"})],m.prototype,"navItemId",2),m};var _=o=>{class m 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 r=e.id,h=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${e.id}"]`),a=h.closest("qti-test-part")?.identifier,x=h.closest("qti-assessment-section")?.identifier;this.sessionContext={...this.sessionContext,navPartId:a,navSectionId:x,navItemId:r,navItemLoading:!1}}else if(e.type==="section"){let r=this._getSectionItemIds(e.id);await this._loadItems(r);let h=e.id,x=(this._testElement?.querySelector(`qti-assessment-section[identifier="${h}"]`)).closest("qti-test-part")?.identifier;this.sessionContext={...this.sessionContext,navPartId:x,navSectionId:h,navItemId:null,navItemLoading:!1}}}}),this.addEventListener("qti-assessment-test-connected",e=>{this._testElement=e.detail;let r;this.navigate==="section"?r=this._testElement.querySelector("qti-assessment-section")?.identifier:r=this.sessionContext.navItemId??this._testElement.querySelector("qti-assessment-item-ref")?.identifier,r&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:this.navigate==="section"?"section":"item",id:r},bubbles:!0,composed:!0}))})}async _loadItems(t){let e;if(!this._testElement||t.length===0)return;let r=t.map(a=>this._testElement.querySelector(`qti-assessment-item-ref[identifier="${a}"]`));if(r.includes(null)){console.warn(`One or more items not found: ${t}`);return}this._clearLoadedItems(),this.sessionContext={...this.sessionContext,navItemLoading:!0};let h=r.map(async a=>a?{itemRef:a,doc:await this._loadItemRequest(a.href)}:null);try{e=await Promise.all(h),e.forEach(({itemRef:a,doc:x})=>{a&&x&&(a.xmlDoc=x)}),requestAnimationFrame(()=>{this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:e.map(({itemRef:a})=>({identifier:a?.identifier,element:a})),bubbles:!0,composed:!0})),console.info(`Loaded ${e.length} items successfully.`)})}catch(a){console.error("Error loading items:",a)}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(r=>r.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){let e=new CustomEvent("qti-load-item-request",{bubbles:!0,composed:!0,detail:{href:t,promise:null}});return this.dispatchEvent(e),e.detail.promise}}return s([n({type:String})],m.prototype,"navigate",2),m};var L=o=>{class m 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 m};var y=class extends u{constructor(){super();this.testContext={items:[],testOutcomeVariables:[]};this.sessionContext={};this._updateItemInTestContext=c=>{let{identifier:i,variables:t}=c,e=this.testContext.items.find(r=>r?.identifier===i);if(!e){console.warn(`Item IDs between assessment.xml and item.xml should match: ${i} is not found!`);return}e.variables?.length===1?this._updateItemVariablesInTestContext(i,t):c.variables=[...e.variables||[]]};this.addEventListener("qti-assessment-test-connected",c=>{if(this.testContext&&this.testContext.items.length>0)return;this.testElement=c.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",c=>{this._updateItemInTestContext(c.detail)}),this.addEventListener("qti-outcome-changed",c=>{let i=c.composedPath()[0];this._updateItemVariablesInTestContext(i.identifier,i.variables)})}_updateItemVariablesInTestContext(c,i){this.testContext={...this.testContext,items:this.testContext.items.map(t=>t.identifier!==c?t:{...t,variables:i.map(e=>{let r=t.variables.find(h=>h.identifier===e.identifier);return r?{...r,...e}:e})})}}};s([I(),q({context:g})],y.prototype,"testContext",2),s([I(),q({context:S})],y.prototype,"sessionContext",2);var M=o=>{class m 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:r}=t.detail;this.updateOutcomeVariable(e,r),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(r=>r.identifier!==i?r:{...r,value:e.cardinality==="single"?t:[...r.value,t]})}}getOutcome(i){return this.getVariable(i)}getVariable(i){return this.testContext.testOutcomeVariables?.find(t=>t.identifier===i)||null}}return m};var E=class extends V(_(L(M(y)))){async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:this}))}render(){return l`<slot></slot>`}};E=s([C("qti-test")],E);var O={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},d=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(),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 l`${this.xmlDoc}`}};s([n({type:String})],d.prototype,"category",2),s([n({type:String})],d.prototype,"identifier",2),s([n({type:Boolean,converter:O})],d.prototype,"required",2),s([n({type:Boolean,converter:O})],d.prototype,"fixed",2),s([n({type:String})],d.prototype,"href",2),s([v({context:g,subscribe:!0})],d.prototype,"_testContext",2),s([n({type:Object,attribute:!1})],d.prototype,"xmlDoc",2);customElements.get("qti-assessment-item-ref")||customElements.define("qti-assessment-item-ref",d);var T={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},p=class extends u{async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-assessment-section-connected",{bubbles:!0,composed:!0}))}render(){return l`<slot name="qti-rubric-block"></slot><slot></slot>`}};s([n({type:String})],p.prototype,"identifier",2),s([n({type:String})],p.prototype,"required",2),s([n({type:Boolean,converter:T})],p.prototype,"fixed",2),s([n({type:String})],p.prototype,"title",2),s([n({type:Boolean,converter:T})],p.prototype,"visible",2),s([n({type:Boolean,converter:T,attribute:"keep-together"})],p.prototype,"keepTogether",2),s([v({context:g,subscribe:!0})],p.prototype,"_testContext",2);customElements.get("qti-assessment-section")||customElements.define("qti-assessment-section",p);var b=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 l` <slot></slot>`}};s([n({type:String})],b.prototype,"identifier",2),s([n({type:String})],b.prototype,"title",2),s([v({context:g,subscribe:!0})],b.prototype,"_testContext",2),b=s([C("qti-assessment-test")],b);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 l` <slot></slot>`}};s([n({type:String})],f.prototype,"identifier",2),s([n({type:String})],f.prototype,"title",2),s([n({type:String})],f.prototype,"class",2),s([n({type:String,attribute:"navigation-mode"})],f.prototype,"NavigationMode",2),s([n({type:String,attribute:"submission-mode"})],f.prototype,"submissionMode",2),f=s([C("qti-test-part")],f);customElements.get("qti-test-part")||customElements.define("qti-test-part",f);export{E as a,d as b,p as c,b as d,f as e};
|