@citolab/qti-components 6.0.29 → 6.0.31

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.
@@ -1,64 +1,56 @@
1
- import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5GG2XAUT.js";import{a as k,b as W,c as s}from"../chunk-343LZK3D.js";var vt={};var yt={};var xt={};var Et={};var qt={};var Ct={};var _t={};var kt={};var At={};var Tt={ON_OUTCOME_CHANGED:"qti-outcome-changed",ON_INTERACTION_CHANGED:"on-interaction-changed",ON_REGISTER_VARIABLE:"on-register-variable",ON_REGISTER_FEEDBACK:"on-register-feedback",ON_REGISTER_INTERACTION:"on-register-interaction",ON_REGISTER_CHOICE:"on-register-choice",ON_REGISTER_HOTSPOT:"on-register-hotspot",ON_LOOSE_CHOICE:"on-loose-choice",ON_INTERACTION_RESPONSE:"on-interaction-response",ON_DROPDOWN_SELECTED:"on-dropdown-selected",ON_CHOICE_ELEMENT_SELECTED:"choice-element-selected"};var H=class{constructor(){this.value=null}},N=class{constructor(){this.value=null;this.candidateResponse=null;this.correctResponse=null}};import{customElement as Zt,property as oe}from"lit/decorators.js";import{html as Qt,LitElement as er}from"lit";var A=class extends er{constructor(){super();this.variables=[];this.feedbackElements=[];this.interactionElements=[];this._numAttempts=0;this._handleDisabledChange=(e,t)=>{this.interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this.interactionElements.forEach(r=>r.readonly=t);this.addEventListener("qti-register-variable",this._registerVariable),this.addEventListener("qti-register-feedback",this.registerFeedbackElement),this.addEventListener("qti-register-interaction",this.registerInteractionElement),this.addEventListener("qti-outcome-changed",this.outcomeChanged),this.addEventListener("qti-interaction-response",this.interactionResponse)}render(){return Qt`<slot></slot>`}firstUpdated(e){super.firstUpdated(e),this.dispatchEvent(new CustomEvent("qti-item-connected",{bubbles:!0,composed:!0,detail:this}))}disconnectedCallback(){this.removeEventListener("qti-register-variable",this._registerVariable),this.removeEventListener("qti-register-feedback",this.registerFeedbackElement),this.removeEventListener("qti-register-interaction",this.registerInteractionElement),this.removeEventListener("qti-outcome-changed",this.outcomeChanged),this.removeEventListener("qti-interaction-response",this.interactionResponse)}_registerVariable(e){this.variables.push(e.detail.variable)}showCorrectResponse(){let e=this.variables.filter(t=>"correctResponse"in t&&t.correctResponse);this.responses=e.map(t=>({responseIdentifier:t.identifier,response:t.correctResponse}))}processResponse(){let e=this.querySelector("qti-response-processing");return e?e.process?(e.process(),this._numAttempts++,this.dispatchEvent(new CustomEvent("qti-response-processing")),!0):(console.info("Client side response webcomponents not available"),!1):(console.info("Client side response processing template not available"),!1)}set responses(e){if(e)for(let t of e){let r=this.interactionElements.find(n=>n.getAttribute("response-identifier")===t.responseIdentifier),o=this.getResponse(t.responseIdentifier);o&&(o.value=t.response),r&&(r.response=t.response)}}resetInteractions(){this.interactionElements.forEach(e=>e.reset())}validateResponses(){let e=!0;return this.interactionElements.forEach(t=>{t.validate()||(e=!1)}),e}getVariable(e){switch(e){case"numAttempts":return{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:this._numAttempts.toString()};default:{let t=this.variables.find(r=>r.identifier===e);return t||(console.warn(`Variable with identifier ${e} was not found`),null)}break}}getResponse(e){let t=this.variables.find(o=>o.identifier===e);return t instanceof N?t:null}getOutcome(e){let t=this.variables.find(r=>r.identifier===e);return t instanceof H?t:null}registerFeedbackElement(e){e.stopPropagation(),this.feedbackElements.push(e.detail)}registerInteractionElement(e){e.stopPropagation(),this.interactionElements.push(e.target)}interactionResponse(e){let t=e.detail,r=this.getResponse(t.responseIdentifier);r&&(r.value=t.response),e.stopImmediatePropagation();let o=this.getAttribute("identifier");o||console.warn("qti-assessment-item has no identifier specified"),this.dispatchEvent(new CustomEvent("qti-interaction-changed",{bubbles:!0,composed:!0,detail:{item:o,responseIdentifier:t.responseIdentifier,response:t.response}}))}outcomeChanged(e){this.showFeedback(e)}showFeedback(e){this.feedbackElements.forEach(t=>{t.checkShowFeedback(e.detail.outcomeIdentifier)})}setOutcomeValue(e,t){let r;switch(e){case"completionStatus":r={identifier:"completionStatus",cardinality:"single",baseType:"string",value:t};break;default:{if(r=this.getOutcome(e),!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}r.cardinality==="single"?r.value=t:r.value.push(t)}break}this.dispatchEvent(new CustomEvent("qti-outcome-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,outcomeIdentifier:e,value:r.value}}))}};s([oe({type:Boolean})],A.prototype,"disabled",2),s([oe({type:Boolean})],A.prototype,"readonly",2),s([oe({type:String})],A.prototype,"title",2),s([oe({type:String})],A.prototype,"identifier",2),s([h("disabled",{waitUntilFirstUpdate:!0})],A.prototype,"_handleDisabledChange",2),s([h("readonly",{waitUntilFirstUpdate:!0})],A.prototype,"_handleReadonlyChange",2),A=s([Zt("qti-assessment-item")],A);import{LitElement as tr}from"lit";var De=class extends tr{constructor(){super()}connectedCallback(){super.connectedCallback();let e=this.closest("qti-assessment-item"),t=this.getAttribute("href");if(t!==null){let r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.media="screen",r.href=t,e.appendChild(r),this.styleLink=r}if(this.textContent!==null){let r=document.createElement("style");r.media="screen",r.textContent=this.textContent,e.appendChild(r),this.styleLink=r}}disconnectedCallback(){let e=this.closest("qti-assessment-item");if(this.styleLink&&this.styleLink.parentElement===this)try{e.removeChild(this.styleLink)}catch(t){console.log("could not remove stylesheet")}}};customElements.define("qti-stylesheet",De);import{customElement as ir}from"lit/decorators.js";import{html as sr,LitElement as or}from"lit";import{css as rr}from"lit";var wt=rr`
1
+ import{a as vt,b as h}from"../chunk-QROD4MVT.js";import{a as gt}from"../chunk-5GG2XAUT.js";import{a as A,b as W,c as s}from"../chunk-343LZK3D.js";var yt={};var xt={};var Et={};var qt={};var Ct={};var _t={};var kt={};var At={};var Tt={};var wt={ON_OUTCOME_CHANGED:"qti-outcome-changed",ON_INTERACTION_CHANGED:"on-interaction-changed",ON_REGISTER_VARIABLE:"on-register-variable",ON_REGISTER_FEEDBACK:"on-register-feedback",ON_REGISTER_INTERACTION:"on-register-interaction",ON_REGISTER_CHOICE:"on-register-choice",ON_REGISTER_HOTSPOT:"on-register-hotspot",ON_LOOSE_CHOICE:"on-loose-choice",ON_INTERACTION_RESPONSE:"on-interaction-response",ON_DROPDOWN_SELECTED:"on-dropdown-selected",ON_CHOICE_ELEMENT_SELECTED:"choice-element-selected"};var D=class{constructor(){this.value=null}},N=class{constructor(){this.value=null;this.candidateResponse=null;this.correctResponse=null}};import{customElement as Qt,property as oe}from"lit/decorators.js";import{html as er,LitElement as tr}from"lit";var T=class extends tr{constructor(){super();this.variables=[];this.feedbackElements=[];this.interactionElements=[];this._numAttempts=0;this._handleDisabledChange=(e,t)=>{this.interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this.interactionElements.forEach(r=>r.readonly=t);this.addEventListener("qti-register-variable",this._registerVariable),this.addEventListener("qti-register-feedback",this.registerFeedbackElement),this.addEventListener("qti-register-interaction",this.registerInteractionElement),this.addEventListener("qti-outcome-changed",this.outcomeChanged),this.addEventListener("qti-interaction-response",this.interactionResponse)}render(){return er`<slot></slot>`}firstUpdated(e){super.firstUpdated(e),this.dispatchEvent(new CustomEvent("qti-item-connected",{bubbles:!0,composed:!0,detail:this}))}disconnectedCallback(){this.removeEventListener("qti-register-variable",this._registerVariable),this.removeEventListener("qti-register-feedback",this.registerFeedbackElement),this.removeEventListener("qti-register-interaction",this.registerInteractionElement),this.removeEventListener("qti-outcome-changed",this.outcomeChanged),this.removeEventListener("qti-interaction-response",this.interactionResponse)}_registerVariable(e){this.variables.push(e.detail.variable)}showCorrectResponse(){let e=this.variables.filter(t=>"correctResponse"in t&&t.correctResponse);this.responses=e.map(t=>({responseIdentifier:t.identifier,response:t.correctResponse}))}processResponse(){let e=this.querySelector("qti-response-processing");return e?e.process?(e.process(),this._numAttempts++,this.dispatchEvent(new CustomEvent("qti-response-processing")),!0):(console.info("Client side response webcomponents not available"),!1):(console.info("Client side response processing template not available"),!1)}set responses(e){if(e)for(let t of e){let r=this.interactionElements.find(n=>n.getAttribute("response-identifier")===t.responseIdentifier),o=this.getResponse(t.responseIdentifier);o&&(o.value=t.response),r&&(r.response=t.response)}}resetInteractions(){this.interactionElements.forEach(e=>e.reset())}validateResponses(){let e=!0;return this.interactionElements.forEach(t=>{t.validate()||(e=!1)}),e}getVariable(e){switch(e){case"numAttempts":return{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:this._numAttempts.toString()};default:{let t=this.variables.find(r=>r.identifier===e);return t||(console.warn(`Variable with identifier ${e} was not found`),null)}break}}getResponse(e){let t=this.variables.find(o=>o.identifier===e);return t instanceof N?t:null}getOutcome(e){let t=this.variables.find(r=>r.identifier===e);return t instanceof D?t:null}registerFeedbackElement(e){e.stopPropagation(),this.feedbackElements.push(e.detail)}registerInteractionElement(e){e.stopPropagation(),this.interactionElements.push(e.target)}interactionResponse(e){let t=e.detail,r=this.getResponse(t.responseIdentifier);r&&(r.value=t.response),e.stopImmediatePropagation();let o=this.getAttribute("identifier");o||console.warn("qti-assessment-item has no identifier specified"),this.dispatchEvent(new CustomEvent("qti-interaction-changed",{bubbles:!0,composed:!0,detail:{item:o,responseIdentifier:t.responseIdentifier,response:t.response}}))}outcomeChanged(e){this.showFeedback(e)}showFeedback(e){this.feedbackElements.forEach(t=>{t.checkShowFeedback(e.detail.outcomeIdentifier)})}setOutcomeValue(e,t){let r;switch(e){case"completionStatus":r={identifier:"completionStatus",cardinality:"single",baseType:"string",value:t};break;default:{if(r=this.getOutcome(e),!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}r.cardinality==="single"?r.value=t:r.value.push(t)}break}this.dispatchEvent(new CustomEvent("qti-outcome-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,outcomeIdentifier:e,value:r.value}}))}};s([oe({type:Boolean})],T.prototype,"disabled",2),s([oe({type:Boolean})],T.prototype,"readonly",2),s([oe({type:String})],T.prototype,"title",2),s([oe({type:String})],T.prototype,"identifier",2),s([h("disabled",{waitUntilFirstUpdate:!0})],T.prototype,"_handleDisabledChange",2),s([h("readonly",{waitUntilFirstUpdate:!0})],T.prototype,"_handleReadonlyChange",2),T=s([Qt("qti-assessment-item")],T);import{LitElement as rr}from"lit";var $e=class extends rr{constructor(){super()}connectedCallback(){super.connectedCallback();let e=this.closest("qti-assessment-item"),t=this.getAttribute("href");if(t!==null){let r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.media="screen",r.href=t,e.appendChild(r),this.styleLink=r}if(this.textContent!==null){let r=document.createElement("style");r.media="screen",r.textContent=this.textContent,e.appendChild(r),this.styleLink=r}}disconnectedCallback(){let e=this.closest("qti-assessment-item");if(this.styleLink&&this.styleLink.parentElement===this)try{e.removeChild(this.styleLink)}catch(t){console.log("could not remove stylesheet")}}};customElements.define("qti-stylesheet",$e);import{customElement as sr}from"lit/decorators.js";import{html as or,LitElement as nr}from"lit";import{css as ir}from"lit";var Rt=ir`
2
2
  :host {
3
3
  display: block;
4
4
  }
5
- `;var $=class extends or{render(){return sr`<slot name="qti-rubric-block"></slot><slot></slot>`}};$.styles=wt,$=s([ir("qti-item-body")],$);import{html as nr,LitElement as ar}from"lit";var He=class extends ar{render(){return nr`<slot></slot>`}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};customElements.define("qti-prompt",He);import{html as lr}from"lit/static-html.js";import{property as G}from"lit/decorators.js";import{LitElement as cr}from"lit";var pr={SPACE:32},y=class extends cr{constructor(){super(...arguments);this.tabindex=0;this.disabled=!1;this.readonly=!1;this.checked=!1}handleDisabledChange(e,t){t?(this.tabindex=void 0,this.blur()):this.tabIndex=0}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent("qti-register-choice",{bubbles:!0,cancelable:!1,composed:!0}))}disconnectedCallback(){this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent("qti-loose-choice",{bubbles:!0,cancelable:!1,composed:!0}))}reset(){this.checked=!1,this.disabled=!1}_onKeyUp(e){if(!e.altKey)switch(e.keyCode){case pr.SPACE:e.preventDefault(),this._toggleChecked();break;default:}}_onClick(){this._toggleChecked()}_toggleChecked(){this.disabled||this.readonly||(this.checked=!this.checked,this.dispatchEvent(new CustomEvent("qti-choice-element-selected",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier,checked:this.checked}})))}validateAllProps(){return!!this.getAttribute("identifier")}render(){return this.validateAllProps()||console.warn(`Invalid props for ${this.outerHTML}`,"missing identifier"),lr` <slot></slot> `}};s([G({type:String})],y.prototype,"identifier",2),s([G({type:Number,reflect:!0})],y.prototype,"tabindex",2),s([G({reflect:!0,type:Boolean,attribute:"aria-disabled",converter:{toAttribute:a=>a}})],y.prototype,"disabled",2),s([G({reflect:!0,type:Boolean,attribute:"aria-readonly",converter:{toAttribute:a=>a}})],y.prototype,"readonly",2),s([G({reflect:!0,type:Boolean,attribute:"aria-checked",converter:{toAttribute:a=>a}})],y.prototype,"checked",2),s([h("disabled",{waitUntilFirstUpdate:!0})],y.prototype,"handleDisabledChange",1);import{html as dr,LitElement as ur}from"lit";var V=class extends ur{render(){return dr``}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);return t.length>1||i.cardinality==="multiple"||i.cardinality==="ordered"?t:t[0]}};customElements.define("qti-variabledeclaration",V);import{property as Ne}from"lit/decorators.js";var O=class extends V{connectedCallback(){super.connectedCallback();let e=new N;e.baseType=this.baseType,e.identifier=this.identifier,e.correctResponse=this.correctResponse,e.cardinality=this.cardinality||"single",e.mapping=this.mapping,e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}get correctResponse(){let e,t=this.querySelector("qti-correct-response");if(t){let r=t.querySelectorAll("qti-value");if(this.cardinality==="single"&&r.length>0)e=r[0].textContent,r[0].remove();else if(this.cardinality!=="single"){e=[];for(let o=0;o<r.length;o++)e.push(r[o].textContent),r[o].remove()}}return e}get mapping(){return this.querySelector("qti-mapping")}};s([Ne({type:String,attribute:"base-type"})],O.prototype,"baseType",2),s([Ne({type:String})],O.prototype,"identifier",2),s([Ne({type:String})],O.prototype,"cardinality",2);customElements.define("qti-response-declaration",O);import{property as $e}from"lit/decorators.js";var P=class extends V{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")),n=parseInt(r.getAttribute("target-value"));(isNaN(o)||isNaN(n))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),t.set(o,n)}}return null}connectedCallback(){super.connectedCallback();let e=new H;e.identifier=this.identifier,e.cardinality=this.cardinality,e.baseType=this.baseType,e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};s([$e({type:String,attribute:"base-type"})],P.prototype,"baseType",2),s([$e({type:String})],P.prototype,"identifier",2),s([$e({type:String})],P.prototype,"cardinality",2);customElements.define("qti-outcome-declaration",P);import{LitElement as mr}from"lit";import{customElement as hr}from"lit/decorators.js";var ne=class extends mr{};ne=s([hr("qti-companion-materials-info")],ne);import{LitElement as fr,css as br,html as gr}from"lit";import{customElement as vr,property as ae}from"lit/decorators.js";import{ContextConsumer as yr}from"@lit-labs/context";var T=class extends fr{constructor(){super(...arguments);this.logger=new yr(this,bt,e=>this.style.display=this.view===e.view?"block":"none",!0)}handleclassNamesChange(e,t){this.classNames.split(" ").forEach(o=>{switch(o){case"qti-rubric-discretionary-placement":this.setAttribute("slot","qti-rubric-block");break;case"qti-rubric-inline":this.setAttribute("slot","");break;default:break}})}render(){return gr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};T.styles=br`
5
+ `;var $=class extends nr{render(){return or`<slot name="qti-rubric-block"></slot><slot></slot>`}};$.styles=Rt,$=s([sr("qti-item-body")],$);import{html as ar,LitElement as lr}from"lit";var Oe=class extends lr{render(){return ar`<slot></slot>`}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};customElements.define("qti-prompt",Oe);import{html as cr}from"lit/static-html.js";import{property as G}from"lit/decorators.js";import{LitElement as pr}from"lit";var dr={SPACE:32},y=class extends pr{constructor(){super(...arguments);this.tabindex=0;this.disabled=!1;this.readonly=!1;this.checked=!1}handleDisabledChange(e,t){t?(this.tabindex=void 0,this.blur()):this.tabIndex=0}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent("qti-register-choice",{bubbles:!0,cancelable:!1,composed:!0}))}disconnectedCallback(){this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent("qti-loose-choice",{bubbles:!0,cancelable:!1,composed:!0}))}reset(){this.checked=!1,this.disabled=!1}_onKeyUp(e){if(!e.altKey)switch(e.keyCode){case dr.SPACE:e.preventDefault(),this._toggleChecked();break;default:}}_onClick(){this._toggleChecked()}_toggleChecked(){this.disabled||this.readonly||(this.checked=!this.checked,this.dispatchEvent(new CustomEvent("qti-choice-element-selected",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier,checked:this.checked}})))}validateAllProps(){return!!this.getAttribute("identifier")}render(){return this.validateAllProps()||console.warn(`Invalid props for ${this.outerHTML}`,"missing identifier"),cr` <slot></slot> `}};s([G({type:String})],y.prototype,"identifier",2),s([G({type:Number,reflect:!0})],y.prototype,"tabindex",2),s([G({reflect:!0,type:Boolean,attribute:"aria-disabled",converter:{toAttribute:a=>a}})],y.prototype,"disabled",2),s([G({reflect:!0,type:Boolean,attribute:"aria-readonly",converter:{toAttribute:a=>a}})],y.prototype,"readonly",2),s([G({reflect:!0,type:Boolean,attribute:"aria-checked",converter:{toAttribute:a=>a}})],y.prototype,"checked",2),s([h("disabled",{waitUntilFirstUpdate:!0})],y.prototype,"handleDisabledChange",1);import{html as ur,LitElement as mr}from"lit";var V=class extends mr{render(){return ur``}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);return t.length>1||i.cardinality==="multiple"||i.cardinality==="ordered"?t:t[0]}};customElements.define("qti-variabledeclaration",V);import{property as Pe}from"lit/decorators.js";var O=class extends V{connectedCallback(){super.connectedCallback();let e=new N;e.baseType=this.baseType,e.identifier=this.identifier,e.correctResponse=this.correctResponse,e.cardinality=this.cardinality||"single",e.mapping=this.mapping,e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}get correctResponse(){let e,t=this.querySelector("qti-correct-response");if(t){let r=t.querySelectorAll("qti-value");if(this.cardinality==="single"&&r.length>0)e=r[0].textContent,r[0].remove();else if(this.cardinality!=="single"){e=[];for(let o=0;o<r.length;o++)e.push(r[o].textContent),r[o].remove()}}return e}get mapping(){return this.querySelector("qti-mapping")}};s([Pe({type:String,attribute:"base-type"})],O.prototype,"baseType",2),s([Pe({type:String})],O.prototype,"identifier",2),s([Pe({type:String})],O.prototype,"cardinality",2);customElements.define("qti-response-declaration",O);import{property as Ie}from"lit/decorators.js";var P=class extends V{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")),n=parseInt(r.getAttribute("target-value"));(isNaN(o)||isNaN(n))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),t.set(o,n)}}return null}connectedCallback(){super.connectedCallback();let e=new D;e.identifier=this.identifier,e.cardinality=this.cardinality,e.baseType=this.baseType,e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};s([Ie({type:String,attribute:"base-type"})],P.prototype,"baseType",2),s([Ie({type:String})],P.prototype,"identifier",2),s([Ie({type:String})],P.prototype,"cardinality",2);customElements.define("qti-outcome-declaration",P);import{LitElement as hr}from"lit";import{customElement as fr}from"lit/decorators.js";var ne=class extends hr{};ne=s([fr("qti-companion-materials-info")],ne);import{LitElement as br,css as gr,html as vr}from"lit";import{customElement as yr,property as ae}from"lit/decorators.js";import{ContextConsumer as xr}from"@lit-labs/context";var w=class extends br{constructor(){super(...arguments);this.logger=new xr(this,gt,e=>this.style.display=this.view===e.view?"block":"none",!0)}handleclassNamesChange(e,t){this.classNames.split(" ").forEach(o=>{switch(o){case"qti-rubric-discretionary-placement":this.setAttribute("slot","qti-rubric-block");break;case"qti-rubric-inline":this.setAttribute("slot","");break;default:break}})}render(){return vr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};w.styles=gr`
6
6
  :host {
7
7
  display: block;
8
8
  }
9
- `,s([ae({type:String})],T.prototype,"id",2),s([ae({type:String})],T.prototype,"use",2),s([ae({type:String})],T.prototype,"view",2),s([ae({type:String,attribute:"class"})],T.prototype,"classNames",2),s([h("classNames",{waitUntilFirstUpdate:!0})],T.prototype,"handleclassNamesChange",1),T=s([vr("qti-rubric-block")],T);import{LitElement as xr,html as Er}from"lit";import{customElement as qr}from"lit/decorators.js";var le=class extends xr{render(){return Er`<slot></slot>`}};le=s([qr("qti-content-body")],le);import{css as _r,html as kr}from"lit";import{LitElement as Cr}from"lit";import{property as ce}from"lit/decorators.js";var E=class extends Cr{constructor(){super();this.showHide="show",this.showFeedback(this.showHide==="hide")}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(e){let t=this.closest("qti-assessment-item").getOutcome(e);if(this.outcomeIdentifier!==e||!t)return;let r=!1;Array.isArray(t.value)?r=t.baseType=="float"||t.baseType=="integer"?t.value.includes(this.identifier):t.value.includes(this.identifier):r=t.baseType=="float"||t.baseType=="integer"?this.identifier===t.value:this.identifier===t.value,this.showFeedback(r)}showFeedback(e){this.showStatus=e?"on":"off"}};s([ce({type:String,attribute:"show-hide"})],E.prototype,"showHide",2),s([ce({type:String,attribute:"outcome-identifier"})],E.prototype,"outcomeIdentifier",2),s([ce({type:String})],E.prototype,"identifier",2),s([ce({type:String,attribute:!1})],E.prototype,"showStatus",2);var pe=class extends E{constructor(){super(...arguments);this.render=()=>kr` <slot class="${this.showStatus}"></slot> `}};pe.styles=_r`
9
+ `,s([ae({type:String})],w.prototype,"id",2),s([ae({type:String})],w.prototype,"use",2),s([ae({type:String})],w.prototype,"view",2),s([ae({type:String,attribute:"class"})],w.prototype,"classNames",2),s([h("classNames",{waitUntilFirstUpdate:!0})],w.prototype,"handleclassNamesChange",1),w=s([yr("qti-rubric-block")],w);import{LitElement as Er,html as qr}from"lit";import{customElement as Cr}from"lit/decorators.js";var le=class extends Er{render(){return qr`<slot></slot>`}};le=s([Cr("qti-content-body")],le);import{css as kr,html as Ar}from"lit";import{LitElement as _r}from"lit";import{property as ce}from"lit/decorators.js";var E=class extends _r{constructor(){super();this.showHide="show",this.showFeedback(this.showHide==="hide")}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(e){let t=this.closest("qti-assessment-item").getOutcome(e);if(this.outcomeIdentifier!==e||!t)return;let r=!1;Array.isArray(t.value)?r=t.baseType=="float"||t.baseType=="integer"?t.value.includes(this.identifier):t.value.includes(this.identifier):r=t.baseType=="float"||t.baseType=="integer"?this.identifier===t.value:this.identifier===t.value,this.showFeedback(r)}showFeedback(e){this.showStatus=e?"on":"off"}};s([ce({type:String,attribute:"show-hide"})],E.prototype,"showHide",2),s([ce({type:String,attribute:"outcome-identifier"})],E.prototype,"outcomeIdentifier",2),s([ce({type:String})],E.prototype,"identifier",2),s([ce({type:String,attribute:!1})],E.prototype,"showStatus",2);var pe=class extends E{constructor(){super(...arguments);this.render=()=>Ar` <slot part="feedback" class="${this.showStatus}"></slot> `}};pe.styles=kr`
10
10
  .on {
11
11
  display: inline-block;
12
12
  }
13
13
  .off {
14
14
  display: none;
15
15
  }
16
- `;customElements.define("qti-feedback-inline",pe);import{html as Ar}from"lit";var Oe=class extends E{render(){return Ar`
17
- <style>
18
- .on {
19
- display: inline-block;
20
- }
21
- .off {
22
- display: none;
23
- }
24
- </style>
25
- <div class="feedback ${this.showStatus}">
26
- <slot></slot>
27
- </div>
28
- `}};customElements.define("qti-modal-feedback",Oe);import{html as Tr}from"lit";var Pe=class extends E{render(){return Tr`
29
- <style>
30
- :host {
31
- display: block;
32
- }
33
- .on {
34
- display: block;
35
- }
36
- .off {
37
- display: none;
38
- }
39
- </style>
40
- <div class="feedback ${this.showStatus}">
41
- <slot></slot>
42
- </div>
43
- `}firstUpdated(i){this.checkShowFeedback(this.outcomeIdentifier)}};customElements.define("qti-feedback-block",Pe);import{css as Rr,html as Lr}from"lit";import{ifDefined as Rt}from"lit/directives/if-defined.js";import{property as Ie}from"lit/decorators.js";import{LitElement as wr}from"lit";var f=class extends wr{constructor(){super(...arguments);this.responseIdentifier="";this.disabled=!1;this.readonly=!1}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,cancelable:!1,composed:!0}))}saveResponse(e){this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,cancelable:!1,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:e}}))}};s([Ie({attribute:"response-identifier"})],f.prototype,"responseIdentifier",2),s([Ie({reflect:!0,type:Boolean})],f.prototype,"disabled",2),s([Ie({reflect:!0,type:Boolean})],f.prototype,"readonly",2);import{customElement as Sr,property as de,state as Lt}from"lit/decorators.js";import{createRef as Mr}from"lit/directives/ref.js";var _=class extends f{constructor(){super(...arguments);this._value="";this._size=5;this.inputRef=Mr()}handleclassNamesChange(e,t){t.split(" ").forEach(o=>{if(o.startsWith("qti-input-width")){let n=o.replace("qti-input-width-","");this._size=parseInt(n)}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[Rr`
16
+ `;customElements.define("qti-feedback-inline",pe);import{css as Tr,html as wr}from"lit";var de=class extends E{constructor(){super(...arguments);this.render=()=>wr` <slot part="feedback" class="${this.showStatus}"></slot> `}};de.styles=Tr`
17
+ .on {
18
+ display: inline-block;
19
+ }
20
+ .off {
21
+ display: none;
22
+ }
23
+ `;customElements.define("qti-modal-feedback",de);import{css as Rr,html as Lr}from"lit";var ue=class extends E{render(){return Lr` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}firstUpdated(i){this.checkShowFeedback(this.outcomeIdentifier)}};ue.styles=Rr`
24
+ :host {
25
+ display: block;
26
+ }
27
+ .on {
28
+ display: block;
29
+ }
30
+ .off {
31
+ display: none;
32
+ }
33
+ `;customElements.define("qti-feedback-block",ue);import{css as Mr,html as Vr}from"lit";import{ifDefined as Lt}from"lit/directives/if-defined.js";import{property as Fe}from"lit/decorators.js";import{LitElement as Sr}from"lit";var f=class extends Sr{constructor(){super(...arguments);this.responseIdentifier="";this.disabled=!1;this.readonly=!1}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,cancelable:!1,composed:!0}))}saveResponse(e){this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,cancelable:!1,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:e}}))}};s([Fe({attribute:"response-identifier"})],f.prototype,"responseIdentifier",2),s([Fe({reflect:!0,type:Boolean})],f.prototype,"disabled",2),s([Fe({reflect:!0,type:Boolean})],f.prototype,"readonly",2);import{customElement as Hr,property as me,state as St}from"lit/decorators.js";import{createRef as Dr}from"lit/directives/ref.js";var k=class extends f{constructor(){super(...arguments);this._value="";this._size=5;this.inputRef=Dr()}handleclassNamesChange(e,t){t.split(" ").forEach(o=>{if(o.startsWith("qti-input-width")){let n=o.replace("qti-input-width-","");this._size=parseInt(n)}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[Mr`
44
34
  :host {
45
35
  display: inline-flex;
46
36
  }
47
- `]}render(){return Lr` <input
48
- part="input"
49
- spellcheck="false"
50
- autocomplete="off"
51
- @keydown="${e=>e.stopImmediatePropagation()}"
52
- @keyup="${this.textChanged}"
53
- @change="${this.textChanged}"
54
- type="text"
55
- placeholder="${Rt(this.placeholderText?this.placeholderText:void 0)}"
56
- .value="${this._value}"
57
- size="${this._size}"
58
- pattern="${Rt(this.patternMask?this.patternMask:void 0)}"
59
- ?disabled="${this.disabled}"
60
- ?readonly="${this.readonly}"
61
- />`}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))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};s([de({type:Number,attribute:"expected-length"})],_.prototype,"expectedLength",2),s([de({type:String,attribute:"pattern-mask"})],_.prototype,"patternMask",2),s([de({type:String,attribute:"placeholder-text"})],_.prototype,"placeholderText",2),s([Lt()],_.prototype,"_value",2),s([Lt()],_.prototype,"_size",2),s([de({type:String,attribute:"class"})],_.prototype,"classNames",2),s([h("classNames")],_.prototype,"handleclassNamesChange",1),_=s([Sr("qti-text-entry-interaction")],_);import{css as Vr,html as Dr}from"lit";import{ifDefined as Fe}from"lit/directives/if-defined.js";import{ref as Hr,createRef as Nr}from"lit/directives/ref.js";import{customElement as $r,property as ue,state as Or}from"lit/decorators.js";var w=class extends f{constructor(){super(...arguments);this.textareaRef=Nr();this._value=""}handleclassNamesChange(e,t){this.classNames.split(" ").forEach(o=>{if(o.startsWith("qti-height-lines")){let n=o.replace("qti-height-lines-","");this.textareaRef&&(this.textareaRef.value.rows=parseInt(n))}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[Vr`
37
+ `]}render(){return Vr`
38
+ <input
39
+ part="input"
40
+ spellcheck="false"
41
+ autocomplete="off"
42
+ @keydown="${e=>e.stopImmediatePropagation()}"
43
+ @keyup="${this.textChanged}"
44
+ @change="${this.textChanged}"
45
+ type="${this.patternMask=="[0-9]*"?"number":"text"}"
46
+ placeholder="${Lt(this.placeholderText?this.placeholderText:void 0)}"
47
+ .value="${this._value}"
48
+ size="${this._size}"
49
+ pattern="${Lt(this.patternMask?this.patternMask:void 0)}"
50
+ ?disabled="${this.disabled}"
51
+ ?readonly="${this.readonly}"
52
+ />
53
+ `}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))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};s([me({type:Number,attribute:"expected-length"})],k.prototype,"expectedLength",2),s([me({type:String,attribute:"pattern-mask"})],k.prototype,"patternMask",2),s([me({type:String,attribute:"placeholder-text"})],k.prototype,"placeholderText",2),s([St()],k.prototype,"_value",2),s([St()],k.prototype,"_size",2),s([me({type:String,attribute:"class"})],k.prototype,"classNames",2),s([h("classNames")],k.prototype,"handleclassNamesChange",1),k=s([Hr("qti-text-entry-interaction")],k);import{css as Nr,html as $r}from"lit";import{ifDefined as Ue}from"lit/directives/if-defined.js";import{ref as Or,createRef as Pr}from"lit/directives/ref.js";import{customElement as Ir,property as he,state as Fr}from"lit/decorators.js";var R=class extends f{constructor(){super(...arguments);this.textareaRef=Pr();this._value=""}handleclassNamesChange(e,t){this.classNames.split(" ").forEach(o=>{if(o.startsWith("qti-height-lines")){let n=o.replace("qti-height-lines-","");this.textareaRef&&(this.textareaRef.value.rows=parseInt(n))}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[Nr`
62
54
  /* PK: display host as block, else design will be collapsed */
63
55
  :host {
64
56
  display: block;
@@ -69,38 +61,38 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
69
61
  height: 100%;
70
62
  border: 0;
71
63
  }
72
- `]}render(){return Dr`<textarea
64
+ `]}render(){return $r`<textarea
73
65
  part="textarea"
74
- ${Hr(this.textareaRef)}
66
+ ${Or(this.textareaRef)}
75
67
  spellcheck="false"
76
68
  autocomplete="off"
77
69
  @keydown="${e=>e.stopImmediatePropagation()}"
78
70
  @keyup="${this.textChanged}"
79
71
  @change="${this.textChanged}"
80
- placeholder="${Fe(this.placeholderText?this.placeholderText:void 0)}"
81
- maxlength="${Fe(this.expectedLength?this.expectedLength:void 0)}"
82
- pattern="${Fe(this.patternMask?this.patternMask:void 0)}"
72
+ placeholder="${Ue(this.placeholderText?this.placeholderText:void 0)}"
73
+ maxlength="${Ue(this.expectedLength?this.expectedLength:void 0)}"
74
+ pattern="${Ue(this.patternMask?this.patternMask:void 0)}"
83
75
  ?disabled="${this.disabled}"
84
76
  ?readonly="${this.readonly}"
85
77
  .value=${this._value}
86
- ></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))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};s([ue({type:Number,attribute:"expected-length"})],w.prototype,"expectedLength",2),s([ue({type:String,attribute:"pattern-mask"})],w.prototype,"patternMask",2),s([ue({type:String,attribute:"placeholder-text"})],w.prototype,"placeholderText",2),s([Or()],w.prototype,"_value",2),s([ue({type:String,attribute:"class"})],w.prototype,"classNames",2),s([h("classNames",{waitUntilFirstUpdate:!0})],w.prototype,"handleclassNamesChange",1),w=s([$r("qti-extended-text-interaction")],w);import{html as Pr}from"lit";import{property as St}from"lit/decorators.js";var v=class extends f{constructor(){super();this._choiceElements=[];this.minChoices=0;this.maxChoices=1;this._handleDisabledChange=(e,t)=>this._choiceElements.forEach(r=>r.disabled=t);this._handleReadonlyChange=(e,t)=>this._choiceElements.forEach(r=>r.readonly=t);this._handleMaxChoicesChange=()=>this._determineInputType();this.addEventListener("qti-register-choice",this._registerChoiceElement),this.addEventListener("qti-loose-choice",this._looseChoiceElement)}reset(){this._choiceElements.forEach(e=>{e.reset()})}validate(){return this._choiceElements.reduce((t,r)=>t+(r.checked?1:0),0)>=this.minChoices}set response(e){this._choiceElements.forEach(r=>{r.checked=!1}),(Array.isArray(e)?e:[e]).forEach(r=>{let o=this.querySelector(`[identifier='${r}']`);o&&(o.checked=!0)})}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-choice-element-selected",this._choiceElementSelectedHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-choice-element-selected",this._choiceElementSelectedHandler),this.removeEventListener("qti-register-choice",this._registerChoiceElement)}_registerChoiceElement(e){e.stopPropagation();let t=e.target;this._choiceElements.push(t),this._setInputType(t)}_looseChoiceElement(e){e.stopPropagation();let t=e.target;this._choiceElements.push(t),this._choiceElements=this._choiceElements.filter(r=>r!==t)}_determineInputType(){this._choiceElements.forEach(e=>{this._setInputType(e)})}_setInputType(e){this.maxChoices===1?e.setAttribute("role","radio"):e.setAttribute("role","checkbox")}_choiceElementSelectedHandler(e){this.maxChoices===1&&this._choiceElements.filter(t=>t.identifier!==e.detail.identifier).forEach(t=>{t.checked=!1}),this._choiceElementSelected()}_choiceElementSelected(){let e=this._choiceElements.filter(r=>r.checked).map(r=>r.identifier);this.maxChoices>1&&(this.maxChoices===e.length?this._choiceElements.forEach(r=>r.disabled=!r.checked):this._choiceElements.forEach(r=>r.disabled=!1));let t;this.maxChoices===1?t=e.length>0?e[0]:void 0:t=e,this.saveResponse(t)}};s([St({type:Number,attribute:"min-choices"})],v.prototype,"minChoices",2),s([St({type:Number,attribute:"max-choices"})],v.prototype,"maxChoices",2),s([h("disabled",{waitUntilFirstUpdate:!0})],v.prototype,"_handleDisabledChange",2),s([h("readonly",{waitUntilFirstUpdate:!0})],v.prototype,"_handleReadonlyChange",2),s([h("maxChoices",{waitUntilFirstUpdate:!0})],v.prototype,"_handleMaxChoicesChange",2);var Ue=class extends v{constructor(){super(...arguments);this.render=()=>Pr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};customElements.define("qti-hottext-interaction",Ue);import{css as Ir,html as Mt}from"lit";import{property as Fr,state as Ur}from"lit/decorators.js";var I=class extends f{constructor(){super(...arguments);this.options=[];this.dataPrompt="select"}static get styles(){return[Ir`
78
+ ></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))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};s([he({type:Number,attribute:"expected-length"})],R.prototype,"expectedLength",2),s([he({type:String,attribute:"pattern-mask"})],R.prototype,"patternMask",2),s([he({type:String,attribute:"placeholder-text"})],R.prototype,"placeholderText",2),s([Fr()],R.prototype,"_value",2),s([he({type:String,attribute:"class"})],R.prototype,"classNames",2),s([h("classNames",{waitUntilFirstUpdate:!0})],R.prototype,"handleclassNamesChange",1),R=s([Ir("qti-extended-text-interaction")],R);import{html as Ur}from"lit";import{property as Mt}from"lit/decorators.js";var v=class extends f{constructor(){super();this._choiceElements=[];this.minChoices=0;this.maxChoices=1;this._handleDisabledChange=(e,t)=>this._choiceElements.forEach(r=>r.disabled=t);this._handleReadonlyChange=(e,t)=>this._choiceElements.forEach(r=>r.readonly=t);this._handleMaxChoicesChange=()=>this._determineInputType();this.addEventListener("qti-register-choice",this._registerChoiceElement),this.addEventListener("qti-loose-choice",this._looseChoiceElement)}reset(){this._choiceElements.forEach(e=>{e.reset()})}validate(){return this._choiceElements.reduce((t,r)=>t+(r.checked?1:0),0)>=this.minChoices}set response(e){this._choiceElements.forEach(r=>{r.checked=!1}),(Array.isArray(e)?e:[e]).forEach(r=>{let o=this.querySelector(`[identifier='${r}']`);o&&(o.checked=!0)})}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-choice-element-selected",this._choiceElementSelectedHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-choice-element-selected",this._choiceElementSelectedHandler),this.removeEventListener("qti-register-choice",this._registerChoiceElement)}_registerChoiceElement(e){e.stopPropagation();let t=e.target;this._choiceElements.push(t),this._setInputType(t)}_looseChoiceElement(e){e.stopPropagation();let t=e.target;this._choiceElements.push(t),this._choiceElements=this._choiceElements.filter(r=>r!==t)}_determineInputType(){this._choiceElements.forEach(e=>{this._setInputType(e)})}_setInputType(e){this.maxChoices===1?e.setAttribute("role","radio"):e.setAttribute("role","checkbox")}_choiceElementSelectedHandler(e){this.maxChoices===1&&this._choiceElements.filter(t=>t.identifier!==e.detail.identifier).forEach(t=>{t.checked=!1}),this._choiceElementSelected()}_choiceElementSelected(){let e=this._choiceElements.filter(r=>r.checked).map(r=>r.identifier);this.maxChoices>1&&(this.maxChoices===e.length?this._choiceElements.forEach(r=>r.disabled=!r.checked):this._choiceElements.forEach(r=>r.disabled=!1));let t;this.maxChoices===1?t=e.length>0?e[0]:void 0:t=e,this.saveResponse(t)}};s([Mt({type:Number,attribute:"min-choices"})],v.prototype,"minChoices",2),s([Mt({type:Number,attribute:"max-choices"})],v.prototype,"maxChoices",2),s([h("disabled",{waitUntilFirstUpdate:!0})],v.prototype,"_handleDisabledChange",2),s([h("readonly",{waitUntilFirstUpdate:!0})],v.prototype,"_handleReadonlyChange",2),s([h("maxChoices",{waitUntilFirstUpdate:!0})],v.prototype,"_handleMaxChoicesChange",2);var Xe=class extends v{constructor(){super(...arguments);this.render=()=>Ur`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};customElements.define("qti-hottext-interaction",Xe);import{css as Xr,html as Vt}from"lit";import{property as Yr,state as Br}from"lit/decorators.js";var I=class extends f{constructor(){super(...arguments);this.options=[];this.dataPrompt="select"}static get styles(){return[Xr`
87
79
  :host {
88
80
  display: inline-block;
89
81
  }
90
- `]}render(){return Mt` <select
82
+ `]}render(){return Vt` <select
91
83
  part="select"
92
84
  @change="${this.choiceSelected}"
93
85
  ?disabled="${this.disabled}"
94
86
  ?readonly="${this.readonly}"
95
87
  >
96
- ${this.options.map(e=>Mt` <option value="${e.value}" ?selected="${e.selected}">${e.textContent}</option> `)}
97
- </select>`}firstUpdated(e){super.firstUpdated(e),this.addEventListener(Tt.ON_DROPDOWN_SELECTED,this.choiceSelected);let t=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...t.map(r=>({textContent:r.innerHTML,value:r.getAttribute("identifier"),selected:!1}))]}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>W(k({},e),{selected:t===0}))}set response(e){this.options=this.options.map(t=>(e===t.value&&(t.selected=!0),t))}choiceSelected(e){let t=e.target.value;this.options=this.options.map(r=>W(k({},r),{selected:r.value===t})),this.saveResponse(t)}};I.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"],s([Ur()],I.prototype,"options",2),s([Fr({attribute:"data-prompt",type:String})],I.prototype,"dataPrompt",2);customElements.define("qti-inline-choice-interaction",I);import{customElement as Yr,property as Br}from"lit/decorators.js";import{html as zr}from"lit";import{css as Xr}from"lit";var Vt=Xr`
88
+ ${this.options.map(e=>Vt` <option value="${e.value}" ?selected="${e.selected}">${e.textContent}</option> `)}
89
+ </select>`}firstUpdated(e){super.firstUpdated(e),this.addEventListener(wt.ON_DROPDOWN_SELECTED,this.choiceSelected);let t=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...t.map(r=>({textContent:r.innerHTML,value:r.getAttribute("identifier"),selected:!1}))]}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>W(A({},e),{selected:t===0}))}set response(e){this.options=this.options.map(t=>(e===t.value&&(t.selected=!0),t))}choiceSelected(e){let t=e.target.value;this.options=this.options.map(r=>W(A({},r),{selected:r.value===t})),this.saveResponse(t)}};I.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"],s([Br()],I.prototype,"options",2),s([Yr({attribute:"data-prompt",type:String})],I.prototype,"dataPrompt",2);customElements.define("qti-inline-choice-interaction",I);import{customElement as jr,property as Kr}from"lit/decorators.js";import{html as Wr}from"lit";import{css as zr}from"lit";var Ht=zr`
98
90
  :host {
99
91
  display: flex;
100
92
  flex-direction: column;
101
93
  // align-items: flex-start;
102
94
  }
103
- `;var F=class extends v{constructor(){super(...arguments);this.render=()=>zr` <slot name="prompt"></slot><slot></slot>`}};F.styles=Vt,s([Br({type:String})],F.prototype,"orientation",2),F=s([Yr("qti-choice-interaction")],F);import{customElement as jr}from"lit/decorators.js";import{html as Kr,LitElement as Wr}from"lit";var Dt=`<qti-response-processing>
95
+ `;var F=class extends v{constructor(){super(...arguments);this.render=()=>Wr` <slot name="prompt"></slot><slot></slot>`}};F.styles=Ht,s([Kr({type:String})],F.prototype,"orientation",2),F=s([jr("qti-choice-interaction")],F);import{customElement as Gr}from"lit/decorators.js";import{html as Jr,LitElement as Zr}from"lit";var Dt=`<qti-response-processing>
104
96
  <qti-response-condition>
105
97
  <qti-response-if>
106
98
  <qti-match>
@@ -117,7 +109,7 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
117
109
  </qti-set-outcome-value>
118
110
  </qti-response-else>
119
111
  </qti-response-condition>
120
- </qti-response-processing>`,Ht=`<qti-response-processing>
112
+ </qti-response-processing>`,Nt=`<qti-response-processing>
121
113
  <qti-response-condition>
122
114
  <qti-response-if>
123
115
  <qti-is-null>
@@ -133,7 +125,7 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
133
125
  </qti-set-outcome-value>
134
126
  </qti-response-else>
135
127
  </qti-response-condition>
136
- </qti-response-processing>`,Nt=`<qti-response-processing>
128
+ </qti-response-processing>`,$t=`<qti-response-processing>
137
129
  <qti-response-condition>
138
130
  <qti-response-if>
139
131
  <qti-is-null>
@@ -149,8 +141,8 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
149
141
  </qti-set-outcome-value>
150
142
  </qti-response-else>
151
143
  </qti-response-condition>
152
- </qti-response-processing>`;var U=class extends Wr{render(){return Kr`<slot></slot>`}static get observedAttributes(){return["identifier"]}process(){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(Ht));break}case"map_response_point":{this.appendChild(this.fragmentFromString(Nt));break}case"match_correct":this.appendChild(this.fragmentFromString(Dt));break}}let i=[...this.children];for(let e of i)e.process()}fragmentFromString(i){return document.createRange().createContextualFragment(i)}};U=s([jr("qti-response-processing")],U);import{customElement as Gr}from"lit/decorators.js";import{html as Jr,LitElement as Zr}from"lit";var S=class extends Zr{render(){return Jr`<slot></slot>`}process(){throw new Error("Not implemented")}};S=s([Gr("qti-rule")],S);import{html as Qr}from"lit";var Xe=class extends S{render(){return Qr`<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",Xe);var Ye=class extends S{process(){let i=this.getAttribute("identifier"),e=this.firstElementChild,t=e?e.calculate():null;if(t==null){console.warn("setOutcomeValue: value is null or undefined");return}this.closest("qti-assessment-item").setOutcomeValue(i,t)}};customElements.define("qti-set-outcome-value",Ye);import{html as ri}from"lit";import{html as ei,LitElement as ti}from"lit";var J=class extends ti{static get properties(){return{debugCalculateResult:{type:Object}}}render(){return ei` <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",J);var Z=class extends J{render(){return ri`${super.render()}`}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",Z);import{html as ii}from"lit";var Be=class extends Z{render(){return ii`${super.render()}`}};customElements.define("qti-response-else-if",Be);import{LitElement as si,css as oi,html as Q,nothing as ze}from"lit";import{state as $t}from"lit/decorators.js";var u=class extends si{constructor(){super(...arguments);this._error=[];this._debug=!1;this.getVariables=()=>Array.from(this.children).map(e=>{switch(e.tagName.toLowerCase()){case"qti-base-value":return{baseType:e.getAttribute("base-type"),value:e.textContent,cardinality:"single"};case"qti-variable":{let t=e.getAttribute("identifier")||"";return this.assessmentItem.getVariable(t)}case"qti-multiple":{let r=e.calculate();return r.length>0?{baseType:r[0].baseType,value:r.map(o=>o.value),cardinality:"multiple"}:null}case"qti-correct":{let t=e.getAttribute("identifier")||"",r=this.assessmentItem.getResponse(t);return{baseType:r.baseType,value:r.correctResponse,cardinality:r.cardinality}}default:{try{return{baseType:"integer",value:e.calculate().toString(),cardinality:"single"}}catch(t){console.warn("default not sufficient")}return null}}}).filter(e=>e!==null)}set error(e){let t=this._error;this._error.push(e),this.requestUpdate("error",t)}render(){return Q`${this._debug?Q`${this._error.map(e=>Q`<div role="alert">${e}</div>`)}`:ze}
153
- ${this._debug?Q`${JSON.stringify(this._result)}`:ze} ${this._debug?Q`<slot></slot>`:ze}`}calculate(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};u.styles=oi`
144
+ </qti-response-processing>`;var U=class extends Zr{render(){return Jr`<slot></slot>`}static get observedAttributes(){return["identifier"]}process(){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(Nt));break}case"map_response_point":{this.appendChild(this.fragmentFromString($t));break}case"match_correct":this.appendChild(this.fragmentFromString(Dt));break}}let i=[...this.children];for(let e of i)e.process()}fragmentFromString(i){return document.createRange().createContextualFragment(i)}};U=s([Gr("qti-response-processing")],U);import{customElement as Qr}from"lit/decorators.js";import{html as ei,LitElement as ti}from"lit";var S=class extends ti{render(){return ei`<slot></slot>`}process(){throw new Error("Not implemented")}};S=s([Qr("qti-rule")],S);import{html as ri}from"lit";var Ye=class extends S{render(){return ri`<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",Ye);var Be=class extends S{process(){let i=this.getAttribute("identifier"),e=this.firstElementChild,t=e?e.calculate():null;if(t==null){console.warn("setOutcomeValue: value is null or undefined");return}this.closest("qti-assessment-item").setOutcomeValue(i,t)}};customElements.define("qti-set-outcome-value",Be);import{html as oi}from"lit";import{html as ii,LitElement as si}from"lit";var J=class extends si{static get properties(){return{debugCalculateResult:{type:Object}}}render(){return ii` <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",J);var Z=class extends J{render(){return oi`${super.render()}`}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",Z);import{html as ni}from"lit";var ze=class extends Z{render(){return ni`${super.render()}`}};customElements.define("qti-response-else-if",ze);import{LitElement as ai,css as li,html as Q,nothing as je}from"lit";import{state as Ot}from"lit/decorators.js";var u=class extends ai{constructor(){super(...arguments);this._error=[];this._debug=!1;this.getVariables=()=>Array.from(this.children).map(e=>{switch(e.tagName.toLowerCase()){case"qti-base-value":return{baseType:e.getAttribute("base-type"),value:e.textContent,cardinality:"single"};case"qti-variable":{let t=e.getAttribute("identifier")||"";return this.assessmentItem.getVariable(t)}case"qti-multiple":{let r=e.calculate();return r.length>0?{baseType:r[0].baseType,value:r.map(o=>o.value),cardinality:"multiple"}:null}case"qti-correct":{let t=e.getAttribute("identifier")||"",r=this.assessmentItem.getResponse(t);return{baseType:r.baseType,value:r.correctResponse,cardinality:r.cardinality}}default:{try{return{baseType:"integer",value:e.calculate().toString(),cardinality:"single"}}catch(t){console.warn("default not sufficient")}return null}}}).filter(e=>e!==null)}set error(e){let t=this._error;this._error.push(e),this.requestUpdate("error",t)}render(){return Q`${this._debug?Q`${this._error.map(e=>Q`<div role="alert">${e}</div>`)}`:je}
145
+ ${this._debug?Q`${JSON.stringify(this._result)}`:je} ${this._debug?Q`<slot></slot>`:je}`}calculate(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};u.styles=li`
154
146
  :host {
155
147
  display: inline;
156
148
  }
@@ -163,15 +155,15 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
163
155
  border-radius: 5px;
164
156
  margin-bottom: 3px;
165
157
  }
166
- `,s([$t()],u.prototype,"_result",2),s([$t()],u.prototype,"error",1);var q=class extends u{calculate(){throw new Error("Not implemented")}};var je=class extends q{calculate(){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();if(typeof r=="string")if(r==="true")r=!0;else if(r==="false")r=!1;else return console.error("unexpected value in qti-and, expected boolean"),null;return r}).every(e=>typeof e=="boolean"&&e)}};customElements.define("qti-and",je);import{property as ni}from"lit/decorators.js";var me=class extends u{constructor(){super(...arguments);this.baseType="string"}calculate(){return this.textContent}};s([ni({type:String,attribute:"base-type"})],me.prototype,"baseType",2);customElements.define("qti-base-value",me);var Ke=class extends q{calculate(){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,o=t.value;return r.filter(c=>o.includes(c)).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",Ke);var We=class extends u{get interpretation(){return this.getAttribute("interpretation")||""}calculate(){let i=this.getAttribute("identifier")||"",e=this.closest("qti-assessment-item").getResponse(i);return e.correctResponse,e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",We);import{property as ai}from"lit/decorators.js";var R=class{static compareSingleValues(i,e,t){switch(t){case"identifier":case"string":return i===e;case"integer":{let r=parseInt(i,10),o=parseInt(e,10);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`Cannot convert ${i} and/or ${e} to int.`);break}case"float":{let r=parseFloat(i),o=parseFloat(e);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`couldn't convert ${i} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=i.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: ${i} 2: ${e}`);break}}return!1}};var he=class extends u{constructor(){super(...arguments);this.toleranceMode="exact"}calculate(){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):R.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};s([ai({type:String})],he.prototype,"toleranceMode",2);customElements.define("qti-equal",he);import{property as li}from"lit/decorators.js";var fe=class extends u{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}calculate(){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),n=parseFloat(r.value);if(!isNaN(o)&&!isNaN(n))return this.roundingMode==="significantFigures"?o.toPrecision(this.figures)===n.toPrecision(this.figures):Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(n*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${o}, ${n}`);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}};s([li({type:String})],fe.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",fe);var Ge=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.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",Ge);var Je=class extends q{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return e.baseType===t.baseType&&(e.baseType==="integer"||e.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",Je);var Ze=class extends u{calculate(){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",Ze);var Qe=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.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",Qe);var et=class extends q{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return e.baseType===t.baseType&&(e.baseType==="integer"||e.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",et);import{property as tt}from"lit/decorators.js";import{LitElement as ci}from"lit";var X=class extends ci{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")}))}};s([tt({attribute:"default-value",type:Number})],X.prototype,"defaultValue",2),s([tt({attribute:"lower-bound",type:Number})],X.prototype,"lowerBound",2),s([tt({attribute:"upper-bound",type:Number})],X.prototype,"upperBound",2);customElements.define("qti-mapping",X);import{property as pi}from"lit/decorators.js";var be=class extends u{calculate(){let e=this.assessmentItem.getResponse(this.identifier);if(!e)return console.warn(`Response ${this.identifier} can not be found`),null;let t=e.mapping,r=Array.isArray(e.value)?e.value:[e.value],o=0;for(let n of r){let l=t.mapEntries.find(c=>R.compareSingleValues(c.mapKey,n,e.baseType));l==null||l.mappedValue==null?o+=t.defaultValue:o+=l.mappedValue}return t.lowerBound!=null&&(o=Math.max(t.lowerBound,o)),t.upperBound!=null&&(o=Math.min(t.upperBound,o)),o}};s([pi({type:String})],be.prototype,"identifier",2);customElements.define("qti-map-response",be);var rt=class a extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return this._result=a.match(e,t),this._result}return console.error("unexpected number of children in match"),null}static match(i,e){if(e.cardinality==="single")return Array.isArray(i.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):R.compareSingleValues(i.value.toString(),e.value.toString(),e.baseType);{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){if(e.cardinality==="ordered"){let o=i[t];if(!R.compareSingleValues(r,o,e.baseType))return!1}else{let o=null;for(let n of i.value)if(R.compareSingleValues(r,n,e.baseType)){o=n;break}if(o!==null)i.value.splice(i.value.indexOf(o),1);else return!1}t++}return!0}}};customElements.define("qti-match",rt);var it=class extends u{calculate(){let i=this.getVariables();this.children.length!==2&&(this.error="The member operator takes two sub-expressions");let[e,t]=i;if(e.baseType!==t.baseType&&(this.error="Which must both have the same base-type"),t.cardinality==="multiple"||t.cardinality==="ordered"||(this.error="and the second must be a multiple or ordered container"),(e.baseType==="float"||t.baseType==="float")&&(this.error="The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||t.baseType==="duration")&&(this.error="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",it);var st=class extends u{calculate(){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",st);import{html as di}from"lit";var ot=class extends u{render(){return di`${super.render()}`}calculate(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",ot);import{html as ui}from"lit";var nt=class extends q{render(){return ui``}calculate(){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();if(typeof r=="string")if(r==="true")r=!0;else if(r==="false")r=!1;else return console.error("unexpected value in qti-and, expected boolean"),null;return r}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",nt);var at=class extends u{calculate(){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",at);import{LitElement as mi,html as Ot}from"lit";import{property as hi,state as fi}from"lit/decorators.js";var ee=class extends mi{constructor(){super();this.value="";this.closest("qti-assessment-item").addEventListener("qti-response-processing",()=>{this.value=this.calculate()})}render(){return Ot`${Array.isArray(this.value)?this.value.map(e=>Ot`${e}`):this.value}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.identifier;return e.getVariable(t).value}};s([hi({type:String})],ee.prototype,"identifier",2),s([fi()],ee.prototype,"value",2);customElements.define("qti-printed-variable",ee);var lt=class extends u{calculate(){return this.getVariables().reduce((t,r)=>{if(r.baseType=="float"||r.baseType=="integer")try{return t*parseInt(r.value.toString())}catch(o){console.warn("can not convert to number")}else console.warn(`has another baseType ${r.baseType}`);return t},1)}};customElements.define("qti-product",lt);var ct=class extends u{calculate(){let i=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariable(i).value}};customElements.define("qti-variable",ct);import{LitElement as bi,html as Pt}from"lit";var pt=class extends bi{constructor(){super(...arguments);this._errorMessage=null}static get properties(){return{responseIdentifier:{type:String,attribute:"response-identifier"},module:{type:String,attribute:"module"},customInteractionTypeIdentifier:{type:String,attribute:"custom-interaction-type-identifier"},baseUrl:{type:String,attribute:"base-url"},_errorMessage:{type:String,state:!0}}}getTAOConfig(e){let t=e.querySelectorAll("properties"),r={},o=l=>{let c={},p=l.getAttribute("key");if(p){let d=Array.from(l.children),m=d.map(g=>g.getAttribute("key"));m.length>0&&!m.find(g=>!Number.isInteger(+g))?c[p]=d.map(g=>n(g)):c[p]=l.textContent}return c},n=l=>{if(l){let c={};for(let p of l.children)c=k(k({},c),o(p));return c}};for(let l of t)return l.getAttribute("key")||(r=k(k({},r),n(l))),r;console.log("Can not find qti-custom-interaction config")}register(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}: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(l=>l.getAttribute("href")).forEach(l=>{let c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.media="screen",c.href=l,r.appendChild(c)})}connectedCallback(){super.connectedCallback();let e={context:this.customInteractionTypeIdentifier,baseUrl:this.baseUrl,catchError:!0};if(window.requirePaths&&window.requireShim&&(e.paths=window.requirePaths,e.shim=window.requireShim),!globalThis.require){this._errorMessage="requirejs not found, load with cdn: https://cdnjs.com/libraries/require.js";return}requirejs.config(e)(["require"],r=>{define("qtiCustomInteractionContext",()=>({register:o=>{this.register(o)},notifyReady:()=>{}})),r([this.module],()=>{},o=>{this._errorMessage=o})},r=>{this._errorMessage=r})}render(){return Pt`<slot></slot>${this._errorMessage&&Pt`<div style="color:red">
158
+ `,s([Ot()],u.prototype,"_result",2),s([Ot()],u.prototype,"error",1);var q=class extends u{calculate(){throw new Error("Not implemented")}};var Ke=class extends q{calculate(){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();if(typeof r=="string")if(r==="true")r=!0;else if(r==="false")r=!1;else return console.error("unexpected value in qti-and, expected boolean"),null;return r}).every(e=>typeof e=="boolean"&&e)}};customElements.define("qti-and",Ke);import{property as ci}from"lit/decorators.js";var fe=class extends u{constructor(){super(...arguments);this.baseType="string"}calculate(){return this.textContent}};s([ci({type:String,attribute:"base-type"})],fe.prototype,"baseType",2);customElements.define("qti-base-value",fe);var We=class extends q{calculate(){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,o=t.value;return r.filter(c=>o.includes(c)).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",We);var Ge=class extends u{get interpretation(){return this.getAttribute("interpretation")||""}calculate(){let i=this.getAttribute("identifier")||"",e=this.closest("qti-assessment-item").getResponse(i);return e.correctResponse,e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",Ge);import{property as pi}from"lit/decorators.js";var C=class{static compareSingleValues(i,e,t){switch(t){case"identifier":case"string":return i===e;case"integer":{let r=parseInt(i,10),o=parseInt(e,10);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`Cannot convert ${i} and/or ${e} to int.`);break}case"float":{let r=parseFloat(i),o=parseFloat(e);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`couldn't convert ${i} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=i.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: ${i} 2: ${e}`);break}}return!1}};var be=class extends u{constructor(){super(...arguments);this.toleranceMode="exact"}calculate(){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):C.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};s([pi({type:String})],be.prototype,"toleranceMode",2);customElements.define("qti-equal",be);import{property as di}from"lit/decorators.js";var ge=class extends u{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}calculate(){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),n=parseFloat(r.value);if(!isNaN(o)&&!isNaN(n))return this.roundingMode==="significantFigures"?o.toPrecision(this.figures)===n.toPrecision(this.figures):Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(n*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${o}, ${n}`);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}};s([di({type:String})],ge.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",ge);var Je=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.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",Je);var Ze=class extends q{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return e.baseType===t.baseType&&(e.baseType==="integer"||e.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",Ze);var Qe=class extends u{calculate(){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",Qe);var et=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.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 tt=class extends q{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return e.baseType===t.baseType&&(e.baseType==="integer"||e.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",tt);import{property as rt}from"lit/decorators.js";import{LitElement as ui}from"lit";var X=class extends ui{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")}))}};s([rt({attribute:"default-value",type:Number})],X.prototype,"defaultValue",2),s([rt({attribute:"lower-bound",type:Number})],X.prototype,"lowerBound",2),s([rt({attribute:"upper-bound",type:Number})],X.prototype,"upperBound",2);customElements.define("qti-mapping",X);import{property as mi}from"lit/decorators.js";var ve=class extends u{calculate(){let e=this.assessmentItem.getResponse(this.identifier);if(!e)return console.warn(`Response ${this.identifier} can not be found`),null;let t=e.mapping,r=Array.isArray(e.value)?e.value:[e.value],o=0;for(let n of r){let l=t.mapEntries.find(c=>C.compareSingleValues(c.mapKey,n,e.baseType));l==null||l.mappedValue==null?o+=t.defaultValue:o+=l.mappedValue}return t.lowerBound!=null&&(o=Math.max(t.lowerBound,o)),t.upperBound!=null&&(o=Math.min(t.upperBound,o)),o}};s([mi({type:String})],ve.prototype,"identifier",2);customElements.define("qti-map-response",ve);var it=class a extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return this._result=a.match(e,t),this._result}return console.error("unexpected number of children in match"),null}static match(i,e){if(e.cardinality==="single")return Array.isArray(i.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):C.compareSingleValues(i.value.toString(),e.value.toString(),e.baseType);{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){if(e.cardinality==="ordered"){let o=i[t];if(!C.compareSingleValues(r,o,e.baseType))return!1}else{let o=null;for(let n of i.value)if(C.compareSingleValues(r,n,e.baseType)){o=n;break}if(o!==null)i.value.splice(i.value.indexOf(o),1);else return!1}t++}return!0}}};customElements.define("qti-match",it);var st=class extends u{calculate(){let i=this.getVariables();this.children.length!==2&&(this.error="The member operator takes two sub-expressions");let[e,t]=i;if(e.baseType!==t.baseType&&(this.error="Which must both have the same base-type"),t.cardinality==="multiple"||t.cardinality==="ordered"||(this.error="and the second must be a multiple or ordered container"),(e.baseType==="float"||t.baseType==="float")&&(this.error="The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||t.baseType==="duration")&&(this.error="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",st);var ot=class extends u{calculate(){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",ot);import{html as hi}from"lit";var nt=class extends u{render(){return hi`${super.render()}`}calculate(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",nt);import{html as fi}from"lit";var at=class extends q{render(){return fi``}calculate(){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();if(typeof r=="string")if(r==="true")r=!0;else if(r==="false")r=!1;else return console.error("unexpected value in qti-and, expected boolean"),null;return r}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",at);var lt=class extends u{calculate(){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",lt);import{LitElement as bi,html as Pt}from"lit";import{property as gi,state as vi}from"lit/decorators.js";var ee=class extends bi{constructor(){super();this.value="";this.closest("qti-assessment-item").addEventListener("qti-response-processing",()=>{this.value=this.calculate()})}render(){return Pt`${Array.isArray(this.value)?this.value.map(e=>Pt`${e}`):this.value}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.identifier;return e.getVariable(t).value}};s([gi({type:String})],ee.prototype,"identifier",2),s([vi()],ee.prototype,"value",2);customElements.define("qti-printed-variable",ee);var ct=class extends u{calculate(){return this.getVariables().reduce((t,r)=>{if(r.baseType=="float"||r.baseType=="integer")try{return t*parseInt(r.value.toString())}catch(o){console.warn("can not convert to number")}else console.warn(`has another baseType ${r.baseType}`);return t},1)}};customElements.define("qti-product",ct);var pt=class extends u{calculate(){let i=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariable(i).value}};customElements.define("qti-variable",pt);import{property as yi}from"lit/decorators.js";var ye=class extends u{constructor(){super(...arguments);this.caseSensitive="true"}calculate(){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(),n=this.caseSensitive==="true"?r.value:r.value.toLowerCase();return C.compareSingleValues(o,n,t.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};s([yi({type:String,attribute:"case-sensitive"})],ye.prototype,"caseSensitive",2);customElements.define("qti-string-match",ye);import{LitElement as xi,html as It}from"lit";var dt=class extends xi{constructor(){super(...arguments);this._errorMessage=null}static get properties(){return{responseIdentifier:{type:String,attribute:"response-identifier"},module:{type:String,attribute:"module"},customInteractionTypeIdentifier:{type:String,attribute:"custom-interaction-type-identifier"},baseUrl:{type:String,attribute:"base-url"},_errorMessage:{type:String,state:!0}}}getTAOConfig(e){let t=e.querySelectorAll("properties"),r={},o=l=>{let c={},p=l.getAttribute("key");if(p){let d=Array.from(l.children),m=d.map(g=>g.getAttribute("key"));m.length>0&&!m.find(g=>!Number.isInteger(+g))?c[p]=d.map(g=>n(g)):c[p]=l.textContent}return c},n=l=>{if(l){let c={};for(let p of l.children)c=A(A({},c),o(p));return c}};for(let l of t)return l.getAttribute("key")||(r=A(A({},r),n(l))),r;console.log("Can not find qti-custom-interaction config")}register(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}: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(l=>l.getAttribute("href")).forEach(l=>{let c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.media="screen",c.href=l,r.appendChild(c)})}connectedCallback(){super.connectedCallback();let e={context:this.customInteractionTypeIdentifier,baseUrl:this.baseUrl,catchError:!0};if(window.requirePaths&&window.requireShim&&(e.paths=window.requirePaths,e.shim=window.requireShim),!globalThis.require){this._errorMessage="requirejs not found, load with cdn: https://cdnjs.com/libraries/require.js";return}requirejs.config(e)(["require"],r=>{define("qtiCustomInteractionContext",()=>({register:o=>{this.register(o)},notifyReady:()=>{}})),r([this.module],()=>{},o=>{this._errorMessage=o})},r=>{this._errorMessage=r})}render(){return It`<slot></slot>${this._errorMessage&&It`<div style="color:red">
167
159
  <h1>Error</h1>
168
160
  ${this._errorMessage}
169
- </div>`}`}};customElements.define("qti-portable-custom-interaction",pt);import{LitElement as vi,css as yi,html as Ut}from"lit";var ge=class a{constructor(){this._touchBegin=0;this._touchDown=null;this._lastClick=0;this._canDrag=!1;this._dragSrc=null;this._dragCopy=null;this._touchEndCalled=!1;this._dragRunning=!1;this._dataTransfer={data:{},setData:function(i,e){this.data[i]=e},getData:function(i){return this.data[i]},effectAllowed:"move"};this._copyOffset={x:0,y:0};this._lastTarget=null;this._currentDropContainer=null;this._handleClick=!0;this._DBLCLICKDELAY=500;this._CONTEXTMENUDELAY=1e3;this._DRAGDELTA=5;this._COPYOPACITY=.7;this.copyStylesDragClone=!0;this.dragOnClick=!1;this._createDragCopy=(i,e)=>{if(this._dragCopy===null&&this._dragRunning){this._dragSrc.style.opacity=this._COPYOPACITY,this._dragCopy=this._dragSrc.cloneNode(!0);let t=window.getComputedStyle(this._dragSrc);if(this._dragCopy.style="",this._dragCopy.setAttribute("dragclone",""),this.copyStylesDragClone)for(let r of t)this._dragCopy.style[r]=t.getPropertyValue(r);this._calculateDragCopyPosition(e),this._dragCopy.style.top=e.clientY-this._copyOffset.y+"px",this._dragCopy.style.left=e.clientX-this._copyOffset.x+"px",this._dragCopy.style.position="fixed",this._dragCopy.style.pointerEvents="none",this._dragCopy.style.zIndex="999999",this._dragCopy=document.body.appendChild(this._dragCopy),this._dispatchEvent(this._dragSrc,"dragstart")}if(this._dragRunning){let t=this;requestAnimationFrame(function(){t._touchEndCalled||t._dragCopy===null||(t._dragCopy.style.top=e.clientY-t._copyOffset.y+"px",t._dragCopy.style.left=e.clientX-t._copyOffset.x+"px")});let r=this._findDroppable(i);r!=this._lastTarget&&(this._dispatchEvent(r,"dragenter"),this._dispatchEvent(this._lastTarget,"dragleave"),this._lastTarget=r),this._currentDropContainer=r,this._currentDropContainer&&this._dispatchEvent(r,"dragover")}};return a._instance?a._instance:(a._instance=this,document.addEventListener("touchmove",this._touchMove.bind(this),{passive:!1,capture:!1}),document.addEventListener("mousemove",this._touchMove.bind(this),{passive:!1,capture:!1}),document.addEventListener("touchend",this._touchEnd.bind(this),{passive:!1,capture:!1}),document.addEventListener("mouseup",this._touchEnd.bind(this),{passive:!1,capture:!1}),document.addEventListener("touchcancel",this._touchCancel.bind(this),{passive:!1,capture:!1}),this)}addDraggables(i){i.forEach(e=>{e.addEventListener("touchstart",this._touchStart.bind(this),{passive:!1,capture:!1}),e.addEventListener("mousedown",this._touchStart.bind(this),{passive:!1,capture:!1})})}_touchStart(i){this._touchBegin=Date.now();let{x:e,y:t}=this._getPoint(i);if(this._touchDown={x:e,y:t},this._dragSrc=i.currentTarget,this._canDrag=!0,this.dragOnClick){let r={clientX:e,clientY:t};this._dragRunning=!0,this._createDragCopy(i,r)}i.preventDefault()}_touchMove(i){if(this._canDrag&&this._dragSrc){let{x:e,y:t}=this._getPoint(i),r={clientX:e,clientY:t};this._getDelta(r)>=this._DRAGDELTA&&(this._dragRunning=!0),this._createDragCopy(i,r),i.preventDefault()}}_touchEnd(i){var e;if(this._touchEndCalled=!0,this._canDrag=!1,this._currentDropContainer)this._dispatchEvent(this._currentDropContainer,"drop"),this._dispatchEvent(this._dragSrc,"dragend");else if(this._dragRunning){let t=new CustomEvent("dragend",{bubbles:!0,cancelable:!0});t.dataTransfer={dropEffect:"none"},(e=this._dragSrc)==null||e.dispatchEvent(t)}this._reset()}_touchCancel(i){this._reset()}_findDroppable(i){let e=this._getPoint(i);return this.elementFromPoint(e.x,e.y)}elementFromPoint(i,e){let t=document.elementFromPoint(i,e);if(t){for(;t.shadowRoot;){let r=t.shadowRoot.elementFromPoint(i,e);if(r===null||r===t)break;t=r}return t}return null}_getPoint(i,e){return i&&i.touches&&(i=i.touches[0]),{x:e?i.pageX:i.clientX,y:e?i.pageY:i.clientY}}_calculateDragCopyPosition(i){let e=this._dragSrc.getBoundingClientRect();this._copyOffset.x=i.clientX-e.left,this._copyOffset.y=i.clientY-e.top}_getDelta(i){let e=Math.abs(i.clientX-this._touchDown.x),t=Math.abs(i.clientY-this._touchDown.y);return e+t}_dispatchEvent(i,e,t=!0){if(!i)return!1;let r=new CustomEvent(e,{bubbles:t,cancelable:!0});return r.dataTransfer=this._dataTransfer,i.dispatchEvent(r),r.defaultPrevented}_reset(){this._dragRunning&&(this._dragSrc.style.opacity="1.0",this._dragCopy.parentElement.removeChild(this._dragCopy)),this._dragRunning=!1,this._dragSrc=null,this._dragCopy=null,this._canDrag=!1,this._touchBegin=0,this._touchDown=null,this._lastClick=0,this._touchEndCalled=!1,this._dataTransfer={data:{},setData:function(i,e){this.data[i]=e},getData:function(i){return this.data[i]},effectAllowed:"move"},this._copyOffset={x:0,y:0},this._lastTarget=null,this._currentDropContainer=null,this._handleClick=!0}};import{property as gi}from"lit/decorators.js";var It=(a,i,e)=>{class t extends a{constructor(){super(...arguments);this.disabled=!1}firstUpdated(n){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(n);let l=Array.from(i?this.shadowRoot.querySelectorAll(e):this.querySelectorAll(e));this.dragoverHandler=this.dragoverHandler.bind(this),this.dragleaveHandler=this.dragleaveHandler.bind(this),this.dragenterHandler=this.dragenterHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),l.forEach(c=>{c.setAttribute("dropzone","move"),c.addEventListener("dragleave",this.dragleaveHandler),this.attachHandler(c)});for(let c of l)this.observer=new MutationObserver(p=>{p.forEach(d=>{if(d.type==="attributes")switch(d.attributeName){case"disabled":{c.hasAttribute("disabled")?this.removeHandler(c):this.attachHandler(c);break}}})}),this.observer.observe(c,{attributes:!0})}attachHandler(n){n.addEventListener("dragover",this.dragoverHandler),n.addEventListener("dragenter",this.dragenterHandler),n.addEventListener("drop",this.dropHandler)}removeHandler(n){n.removeEventListener("dragover",this.dragoverHandler),n.removeEventListener("dragenter",this.dragenterHandler),n.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var n;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(n=this.observer)==null||n.disconnect())}dragenterHandler(n){n.preventDefault()}dragoverHandler(n){return n.preventDefault(),n.currentTarget.setAttribute("active",""),n.dataTransfer.dropEffect="move",!1}dropHandler(n){n.preventDefault();let l=n.currentTarget,c=this.querySelector(`[identifier=${n.dataTransfer.getData("text")}`),p=c||this.shadowRoot.querySelector(`[identifier=${n.dataTransfer.getData("text")}`);return l?p.parentElement.getAttribute("identifier")!==l.getAttribute("identifier")&&l.appendChild(p):console.error(`cannot find droppable, target: ${n.target?JSON.stringify(n.target):"null"}`),l.removeAttribute("active"),!1}dragleaveHandler(n){return n.preventDefault(),n.currentTarget.removeAttribute("active"),n.dataTransfer.dropEffect="none",!1}}return s([gi({type:Boolean,reflect:!0})],t.prototype,"disabled",2),t};var Ft=(a,i,e)=>{class t extends a{}return t};import{property as Y}from"lit/decorators.js";var L=(a,i,e,t)=>{class r extends Ft(It(a,e,t),t,i){constructor(){super(...arguments);this.draggables=new Map;this.responseIdentifier="";this.configuration={copyStylesDragClone:!0,dragCanBePlacedBack:!0,dragOnClick:!1};this.disabled=!1;this.readonly=!1;this.minAssociations=1;this.maxAssociations=1}reInitDragAndDrop(l,c){if(this.classList.contains("qti-match-tabular"))return;l.filter(d=>!this.draggables||!this.draggables.get(d)).length>0&&(this.dragDropApi.addDraggables(l),l.forEach(d=>{this.draggables.set(d,{parent:d.parentElement,index:Array.from(d.parentNode.children).indexOf(d)}),d.setAttribute("qti-draggable","true"),d.addEventListener("dragstart",m=>{m.dataTransfer.setData("text",m.currentTarget.getAttribute("identifier")),d.setAttribute("dragging","")}),d.addEventListener("dragend",m=>{if(m.preventDefault(),d.removeAttribute("over"),d.removeAttribute("dragging"),(m.dataTransfer.dropEffect==="none"||m.dataTransfer.dropEffect===void 0)&&this.configuration.dragCanBePlacedBack){let C=m.currentTarget,g=this.draggables.get(C),Me=g.index<g.parent.children.length?g.index:g.parent.children.length-1,b=g.parent,Ve=g.parent.children[Me];b.insertBefore(C,Ve),this.saveResponse(),this.checkMaxMatchAssociations()}m.dataTransfer.dropEffect==="move"&&(this.saveResponse(),this.checkMaxMatchAssociations())})}))}handleDragOptionsChanged(l,c){this.dragDropApi.copyStylesDragClone=c.copyStylesDragClone,this.dragDropApi.dragOnClick=c.dragOnClick}handleDisabledChange(l,c){this.draggables.forEach((p,d)=>{c?d.setAttribute("disabled",""):d.removeAttribute("disabled"),c?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}handleReadonlyChange(l,c){this.draggables.forEach((p,d)=>{c?d.setAttribute("readonly",""):d.removeAttribute("readonly"),c?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}firstUpdated(l){super.firstUpdated(l),this.droppables=Array.from(e?this.shadowRoot.querySelectorAll(t):this.querySelectorAll(t))}connectedCallback(){super.connectedCallback(),this.dragDropApi=new ge,this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,detail:this}))}reset(l=!0){this.draggables.forEach((c,p)=>{let d=c.parent.children,m=c.index<d.length?c.index:d.length;c.parent.insertBefore(p,d[m])}),l&&this.saveResponse()}checkMaxMatchAssociations(){this.droppables.forEach(l=>{let p=+(l.getAttribute("match-max")||1)<=(l.children.length||0);p?l.setAttribute("disabled",""):l.removeAttribute("disabled"),p?l.removeAttribute("dropzone"):l.setAttribute("dropzone","move")})}set response(l){this.classList.contains("qti-match-tabular")||(this.reset(!1),l!==null&&Array.isArray(l)&&l.forEach(c=>{let[p,...d]=c.split(" ").reverse();if(p){let m=this.droppables.find(C=>C.getAttribute("identifier")===p);d.forEach(C=>{let g=this.querySelector(`[identifier=${C}]`);m?g?(m.appendChild(g),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${C}`):console.error(`cannot find droppable with identifier: ${p}`)})}}))}validate(){let c=(e?Array.from(this.shadowRoot.querySelectorAll(t)):Array.from(this.querySelectorAll(t))).filter(p=>p.childElementCount>0).length;return this.minAssociations<=0||this.minAssociations<=c}saveResponse(){let l=this.droppables.map(c=>{var d;let p="";return((d=c.children)==null?void 0:d.length)>0&&(p+=Array.from(c.children).map(m=>m.getAttribute("identifier")).join(" ")+" "),p+=c.getAttribute("identifier"),p});this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:l}}))}}return s([gt(i)],r.prototype,"reInitDragAndDrop",1),s([Y({type:String,attribute:"response-identifier"})],r.prototype,"responseIdentifier",2),s([Y({attribute:!1,type:Object})],r.prototype,"configuration",2),s([h("configuration")],r.prototype,"handleDragOptionsChanged",1),s([Y({type:Boolean,reflect:!0})],r.prototype,"disabled",2),s([h("disabled",{waitUntilFirstUpdate:!0})],r.prototype,"handleDisabledChange",1),s([Y({type:Boolean,reflect:!0})],r.prototype,"readonly",2),s([h("readonly",{waitUntilFirstUpdate:!0})],r.prototype,"handleReadonlyChange",1),s([Y({type:Number,reflect:!0,attribute:"min-associations"})],r.prototype,"minAssociations",2),s([Y({type:Number,reflect:!0,attribute:"max-associations"})],r.prototype,"maxAssociations",2),r};import{state as xi}from"lit/decorators.js";var te=class extends L(vi,"qti-simple-associable-choice",!0,".dl"){render(){return Ut` <slot name="prompt"></slot>
161
+ </div>`}`}};customElements.define("qti-portable-custom-interaction",dt);import{LitElement as qi,css as Ci,html as Xt}from"lit";var xe=class a{constructor(){this._touchBegin=0;this._touchDown=null;this._lastClick=0;this._canDrag=!1;this._dragSrc=null;this._dragCopy=null;this._touchEndCalled=!1;this._dragRunning=!1;this._dataTransfer={data:{},setData:function(i,e){this.data[i]=e},getData:function(i){return this.data[i]},effectAllowed:"move"};this._copyOffset={x:0,y:0};this._lastTarget=null;this._currentDropContainer=null;this._handleClick=!0;this._DBLCLICKDELAY=500;this._CONTEXTMENUDELAY=1e3;this._DRAGDELTA=5;this._COPYOPACITY=.7;this.copyStylesDragClone=!0;this.dragOnClick=!1;this._createDragCopy=(i,e)=>{if(this._dragCopy===null&&this._dragRunning){this._dragSrc.style.opacity=this._COPYOPACITY,this._dragCopy=this._dragSrc.cloneNode(!0);let t=window.getComputedStyle(this._dragSrc);if(this._dragCopy.style="",this._dragCopy.setAttribute("dragclone",""),this.copyStylesDragClone)for(let r of t)this._dragCopy.style[r]=t.getPropertyValue(r);this._calculateDragCopyPosition(e),this._dragCopy.style.top=e.clientY-this._copyOffset.y+"px",this._dragCopy.style.left=e.clientX-this._copyOffset.x+"px",this._dragCopy.style.position="fixed",this._dragCopy.style.pointerEvents="none",this._dragCopy.style.zIndex="999999",this._dragCopy=document.body.appendChild(this._dragCopy),this._dispatchEvent(this._dragSrc,"dragstart")}if(this._dragRunning){let t=this;requestAnimationFrame(function(){t._touchEndCalled||t._dragCopy===null||(t._dragCopy.style.top=e.clientY-t._copyOffset.y+"px",t._dragCopy.style.left=e.clientX-t._copyOffset.x+"px")});let r=this._findDroppable(i);r!=this._lastTarget&&(this._dispatchEvent(r,"dragenter"),this._dispatchEvent(this._lastTarget,"dragleave"),this._lastTarget=r),this._currentDropContainer=r,this._currentDropContainer&&this._dispatchEvent(r,"dragover")}};return a._instance?a._instance:(a._instance=this,document.addEventListener("touchmove",this._touchMove.bind(this),{passive:!1,capture:!1}),document.addEventListener("mousemove",this._touchMove.bind(this),{passive:!1,capture:!1}),document.addEventListener("touchend",this._touchEnd.bind(this),{passive:!1,capture:!1}),document.addEventListener("mouseup",this._touchEnd.bind(this),{passive:!1,capture:!1}),document.addEventListener("touchcancel",this._touchCancel.bind(this),{passive:!1,capture:!1}),this)}addDraggables(i){i.forEach(e=>{e.addEventListener("touchstart",this._touchStart.bind(this),{passive:!1,capture:!1}),e.addEventListener("mousedown",this._touchStart.bind(this),{passive:!1,capture:!1})})}_touchStart(i){this._touchBegin=Date.now();let{x:e,y:t}=this._getPoint(i);if(this._touchDown={x:e,y:t},this._dragSrc=i.currentTarget,this._canDrag=!0,this.dragOnClick){let r={clientX:e,clientY:t};this._dragRunning=!0,this._createDragCopy(i,r)}i.preventDefault()}_touchMove(i){if(this._canDrag&&this._dragSrc){let{x:e,y:t}=this._getPoint(i),r={clientX:e,clientY:t};this._getDelta(r)>=this._DRAGDELTA&&(this._dragRunning=!0),this._createDragCopy(i,r),i.preventDefault()}}_touchEnd(i){var e;if(this._touchEndCalled=!0,this._canDrag=!1,this._currentDropContainer)this._dispatchEvent(this._currentDropContainer,"drop"),this._dispatchEvent(this._dragSrc,"dragend");else if(this._dragRunning){let t=new CustomEvent("dragend",{bubbles:!0,cancelable:!0});t.dataTransfer={dropEffect:"none"},(e=this._dragSrc)==null||e.dispatchEvent(t)}this._reset()}_touchCancel(i){this._reset()}_findDroppable(i){let e=this._getPoint(i);return this.elementFromPoint(e.x,e.y)}elementFromPoint(i,e){let t=document.elementFromPoint(i,e);if(t){for(;t.shadowRoot;){let r=t.shadowRoot.elementFromPoint(i,e);if(r===null||r===t)break;t=r}return t}return null}_getPoint(i,e){return i&&i.touches&&(i=i.touches[0]),{x:e?i.pageX:i.clientX,y:e?i.pageY:i.clientY}}_calculateDragCopyPosition(i){let e=this._dragSrc.getBoundingClientRect();this._copyOffset.x=i.clientX-e.left,this._copyOffset.y=i.clientY-e.top}_getDelta(i){let e=Math.abs(i.clientX-this._touchDown.x),t=Math.abs(i.clientY-this._touchDown.y);return e+t}_dispatchEvent(i,e,t=!0){if(!i)return!1;let r=new CustomEvent(e,{bubbles:t,cancelable:!0});return r.dataTransfer=this._dataTransfer,i.dispatchEvent(r),r.defaultPrevented}_reset(){this._dragRunning&&(this._dragSrc.style.opacity="1.0",this._dragCopy.parentElement.removeChild(this._dragCopy)),this._dragRunning=!1,this._dragSrc=null,this._dragCopy=null,this._canDrag=!1,this._touchBegin=0,this._touchDown=null,this._lastClick=0,this._touchEndCalled=!1,this._dataTransfer={data:{},setData:function(i,e){this.data[i]=e},getData:function(i){return this.data[i]},effectAllowed:"move"},this._copyOffset={x:0,y:0},this._lastTarget=null,this._currentDropContainer=null,this._handleClick=!0}};import{property as Ei}from"lit/decorators.js";var Ft=(a,i,e)=>{class t extends a{constructor(){super(...arguments);this.disabled=!1}firstUpdated(n){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(n);let l=Array.from(i?this.shadowRoot.querySelectorAll(e):this.querySelectorAll(e));this.dragoverHandler=this.dragoverHandler.bind(this),this.dragleaveHandler=this.dragleaveHandler.bind(this),this.dragenterHandler=this.dragenterHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),l.forEach(c=>{c.setAttribute("dropzone","move"),c.addEventListener("dragleave",this.dragleaveHandler),this.attachHandler(c)});for(let c of l)this.observer=new MutationObserver(p=>{p.forEach(d=>{if(d.type==="attributes")switch(d.attributeName){case"disabled":{c.hasAttribute("disabled")?this.removeHandler(c):this.attachHandler(c);break}}})}),this.observer.observe(c,{attributes:!0})}attachHandler(n){n.addEventListener("dragover",this.dragoverHandler),n.addEventListener("dragenter",this.dragenterHandler),n.addEventListener("drop",this.dropHandler)}removeHandler(n){n.removeEventListener("dragover",this.dragoverHandler),n.removeEventListener("dragenter",this.dragenterHandler),n.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var n;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(n=this.observer)==null||n.disconnect())}dragenterHandler(n){n.preventDefault()}dragoverHandler(n){return n.preventDefault(),n.currentTarget.setAttribute("active",""),n.dataTransfer.dropEffect="move",!1}dropHandler(n){n.preventDefault();let l=n.currentTarget,c=this.querySelector(`[identifier=${n.dataTransfer.getData("text")}`),p=c||this.shadowRoot.querySelector(`[identifier=${n.dataTransfer.getData("text")}`);return l?p.parentElement.getAttribute("identifier")!==l.getAttribute("identifier")&&l.appendChild(p):console.error(`cannot find droppable, target: ${n.target?JSON.stringify(n.target):"null"}`),l.removeAttribute("active"),!1}dragleaveHandler(n){return n.preventDefault(),n.currentTarget.removeAttribute("active"),n.dataTransfer.dropEffect="none",!1}}return s([Ei({type:Boolean,reflect:!0})],t.prototype,"disabled",2),t};var Ut=(a,i,e)=>{class t extends a{}return t};import{property as Y}from"lit/decorators.js";var L=(a,i,e,t)=>{class r extends Ut(Ft(a,e,t),t,i){constructor(){super(...arguments);this.draggables=new Map;this.responseIdentifier="";this.configuration={copyStylesDragClone:!0,dragCanBePlacedBack:!0,dragOnClick:!1};this.disabled=!1;this.readonly=!1;this.minAssociations=1;this.maxAssociations=1}reInitDragAndDrop(l,c){if(this.classList.contains("qti-match-tabular"))return;l.filter(d=>!this.draggables||!this.draggables.get(d)).length>0&&(this.dragDropApi.addDraggables(l),l.forEach(d=>{this.draggables.set(d,{parent:d.parentElement,index:Array.from(d.parentNode.children).indexOf(d)}),d.setAttribute("qti-draggable","true"),d.addEventListener("dragstart",m=>{m.dataTransfer.setData("text",m.currentTarget.getAttribute("identifier")),d.setAttribute("dragging","")}),d.addEventListener("dragend",m=>{if(m.preventDefault(),d.removeAttribute("over"),d.removeAttribute("dragging"),(m.dataTransfer.dropEffect==="none"||m.dataTransfer.dropEffect===void 0)&&this.configuration.dragCanBePlacedBack){let _=m.currentTarget,g=this.draggables.get(_),De=g.index<g.parent.children.length?g.index:g.parent.children.length-1,b=g.parent,Ne=g.parent.children[De];b.insertBefore(_,Ne),this.saveResponse(),this.checkMaxMatchAssociations()}m.dataTransfer.dropEffect==="move"&&(this.saveResponse(),this.checkMaxMatchAssociations())})}))}handleDragOptionsChanged(l,c){this.dragDropApi.copyStylesDragClone=c.copyStylesDragClone,this.dragDropApi.dragOnClick=c.dragOnClick}handleDisabledChange(l,c){this.draggables.forEach((p,d)=>{c?d.setAttribute("disabled",""):d.removeAttribute("disabled"),c?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}handleReadonlyChange(l,c){this.draggables.forEach((p,d)=>{c?d.setAttribute("readonly",""):d.removeAttribute("readonly"),c?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}firstUpdated(l){super.firstUpdated(l),this.droppables=Array.from(e?this.shadowRoot.querySelectorAll(t):this.querySelectorAll(t))}connectedCallback(){super.connectedCallback(),this.dragDropApi=new xe,this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,detail:this}))}reset(l=!0){this.draggables.forEach((c,p)=>{let d=c.parent.children,m=c.index<d.length?c.index:d.length;c.parent.insertBefore(p,d[m])}),l&&this.saveResponse()}checkMaxMatchAssociations(){this.droppables.forEach(l=>{let p=+(l.getAttribute("match-max")||1)<=(l.children.length||0);p?l.setAttribute("disabled",""):l.removeAttribute("disabled"),p?l.removeAttribute("dropzone"):l.setAttribute("dropzone","move")})}set response(l){this.classList.contains("qti-match-tabular")||(this.reset(!1),l!==null&&Array.isArray(l)&&l.forEach(c=>{let[p,...d]=c.split(" ").reverse();if(p){let m=this.droppables.find(_=>_.getAttribute("identifier")===p);d.forEach(_=>{let g=this.querySelector(`[identifier=${_}]`);m?g?(m.appendChild(g),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${_}`):console.error(`cannot find droppable with identifier: ${p}`)})}}))}validate(){let c=(e?Array.from(this.shadowRoot.querySelectorAll(t)):Array.from(this.querySelectorAll(t))).filter(p=>p.childElementCount>0).length;return this.minAssociations<=0||this.minAssociations<=c}saveResponse(){let l=this.droppables.map(c=>{var d;let p="";return((d=c.children)==null?void 0:d.length)>0&&(p+=Array.from(c.children).map(m=>m.getAttribute("identifier")).join(" ")+" "),p+=c.getAttribute("identifier"),p});this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:l}}))}}return s([vt(i)],r.prototype,"reInitDragAndDrop",1),s([Y({type:String,attribute:"response-identifier"})],r.prototype,"responseIdentifier",2),s([Y({attribute:!1,type:Object})],r.prototype,"configuration",2),s([h("configuration")],r.prototype,"handleDragOptionsChanged",1),s([Y({type:Boolean,reflect:!0})],r.prototype,"disabled",2),s([h("disabled",{waitUntilFirstUpdate:!0})],r.prototype,"handleDisabledChange",1),s([Y({type:Boolean,reflect:!0})],r.prototype,"readonly",2),s([h("readonly",{waitUntilFirstUpdate:!0})],r.prototype,"handleReadonlyChange",1),s([Y({type:Number,reflect:!0,attribute:"min-associations"})],r.prototype,"minAssociations",2),s([Y({type:Number,reflect:!0,attribute:"max-associations"})],r.prototype,"maxAssociations",2),r};import{state as _i}from"lit/decorators.js";var te=class extends L(qi,"qti-simple-associable-choice",!0,".dl"){render(){return Xt` <slot name="prompt"></slot>
170
162
  <slot name="qti-simple-associable-choice"></slot>
171
- ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,t)=>Ut`<div part="associables-container">
163
+ ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,t)=>Xt`<div part="associables-container">
172
164
  <div name="left${t}" part="drop-list" class="dl" identifier="droplist${t}_left"></div>
173
165
  <div name="right${t}" part="drop-list" class="dl" identifier="droplist${t}_right"></div>
174
- </div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};te.styles=yi`
166
+ </div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};te.styles=Ci`
175
167
  :host {
176
168
  display: block; /* necessary to calculate scaling position */
177
169
  }
@@ -180,8 +172,8 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
180
172
  flex-wrap: wrap;
181
173
  gap: 0.5rem;
182
174
  }
183
- `,s([xi()],te.prototype,"_childrenMap",2);customElements.define("qti-associate-interaction",te);import{css as Ei,html as qi,LitElement as Ci}from"lit";var ve=class extends L(Ci,"qti-gap-text",!1,"qti-gap"){render(){return qi` <slot part="drags" name="qti-gap-text"></slot>
184
- <slot part="drops"></slot>`}};ve.styles=[Ei`
175
+ `,s([_i()],te.prototype,"_childrenMap",2);customElements.define("qti-associate-interaction",te);import{css as ki,html as Ai,LitElement as Ti}from"lit";var Ee=class extends L(Ti,"qti-gap-text",!1,"qti-gap"){render(){return Ai` <slot part="drags" name="qti-gap-text"></slot>
176
+ <slot part="drops"></slot>`}};Ee.styles=[ki`
185
177
  :host {
186
178
  display: flex;
187
179
  align-items: flex-start;
@@ -204,14 +196,14 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
204
196
  align-items: flex-start;
205
197
  flex: 1;
206
198
  }
207
- `];customElements.define("qti-gap-match-interaction",ve);import{css as _i,svg as Xt,html as ki}from"lit";function B(a,i,e,t){switch(a){case"circle":{let[r,o,n]=i,l=r/e.width*100,c=o/e.height*100,p=n/e.width*100;t.style.left=l-p+"%",t.style.top=c-p+"%",t.style.width=t.style.height=4*p+"px",t.style.borderRadius="9999px"}break;case"rect":{let[r,o,n,l]=i,c=r/e.width*100,p=o/e.height*100,d=n/e.width*100,m=l/e.height*100;t.style.left=c+"%",t.style.top=p+"%",t.style.width=d-c+"%",t.style.height=m-p+"%"}break;case"poly":{let r=i.reduce((b,Ve,ft,Gt)=>{if(ft%2===1){let Jt=b.pop();b[b.length]={x:Jt,y:Gt[ft]}}else b.push(Ve);return b},[]),o=Math.min(...r.map(b=>b.x)),n=Math.max(...r.map(b=>b.x)),l=Math.min(...r.map(b=>b.y)),c=Math.max(...r.map(b=>b.y)),p=o/e.width*100,d=l/e.height*100,m=n/e.width*100,C=c/e.height*100;t.style.left=o/e.width*100+"%",t.style.top=l/e.height*100+"%",t.style.width=m-p+"%",t.style.height=C-d+"%";let Me=r.map(b=>({x:(b.x-o)/(n-o)*100,y:(b.y-l)/(c-l)*100})).map(b=>Math.round(b.x)+"% "+Math.round(b.y)+"%").join(",");t.style.clipPath=`polygon(${Me})`}break;default:break}}import{query as Ai,queryAssignedElements as Ti,state as dt}from"lit/decorators.js";import{repeat as wi}from"lit/directives/repeat.js";import{ifDefined as Yt}from"lit/directives/if-defined.js";var M=class extends f{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 response(e){Array.isArray(e)&&(this._lines=e)}render(){var e,t,r,o;return ki`<slot name="prompt"></slot>
199
+ `];customElements.define("qti-gap-match-interaction",Ee);import{css as wi,svg as Yt,html as Ri}from"lit";function B(a,i,e,t){switch(a){case"circle":{let[r,o,n]=i,l=r/e.width*100,c=o/e.height*100,p=n/e.width*100;t.style.left=l-p+"%",t.style.top=c-p+"%",t.style.width=t.style.height=4*p+"px",t.style.borderRadius="9999px"}break;case"rect":{let[r,o,n,l]=i,c=r/e.width*100,p=o/e.height*100,d=n/e.width*100,m=l/e.height*100;t.style.left=c+"%",t.style.top=p+"%",t.style.width=d-c+"%",t.style.height=m-p+"%"}break;case"poly":{let r=i.reduce((b,Ne,bt,Jt)=>{if(bt%2===1){let Zt=b.pop();b[b.length]={x:Zt,y:Jt[bt]}}else b.push(Ne);return b},[]),o=Math.min(...r.map(b=>b.x)),n=Math.max(...r.map(b=>b.x)),l=Math.min(...r.map(b=>b.y)),c=Math.max(...r.map(b=>b.y)),p=o/e.width*100,d=l/e.height*100,m=n/e.width*100,_=c/e.height*100;t.style.left=o/e.width*100+"%",t.style.top=l/e.height*100+"%",t.style.width=m-p+"%",t.style.height=_-d+"%";let De=r.map(b=>({x:(b.x-o)/(n-o)*100,y:(b.y-l)/(c-l)*100})).map(b=>Math.round(b.x)+"% "+Math.round(b.y)+"%").join(",");t.style.clipPath=`polygon(${De})`}break;default:break}}import{query as Li,queryAssignedElements as Si,state as ut}from"lit/decorators.js";import{repeat as Mi}from"lit/directives/repeat.js";import{ifDefined as Bt}from"lit/directives/if-defined.js";var M=class extends f{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 response(e){Array.isArray(e)&&(this._lines=e)}render(){var e,t,r,o;return Ri`<slot name="prompt"></slot>
208
200
  <line-container>
209
201
  <svg
210
- width=${Yt((e=this.grImage[0])==null?void 0:e.width)}
211
- height=${Yt((t=this.grImage[0])==null?void 0:t.height)}
202
+ width=${Bt((e=this.grImage[0])==null?void 0:e.width)}
203
+ height=${Bt((t=this.grImage[0])==null?void 0:t.height)}
212
204
  viewbox="0 0 ${(r=this.grImage[0])==null?void 0:r.width} ${(o=this.grImage[0])==null?void 0:o.height}"
213
205
  >
214
- ${wi(this._lines,n=>n,(n,l)=>Xt`
206
+ ${Mi(this._lines,n=>n,(n,l)=>Yt`
215
207
  <line
216
208
  part="line"
217
209
  x1=${parseInt(this.querySelector("[identifier="+n.split(" ")[0]+"]").style.left)}
@@ -223,7 +215,7 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
223
215
  @click=${c=>{c.stopPropagation(),this._lines=this._lines.filter((p,d)=>d!==l),this.saveResponse(this._lines)}}
224
216
  />
225
217
  `)}
226
- ${this.startPoint&&Xt`<line
218
+ ${this.startPoint&&Yt`<line
227
219
  part="point"
228
220
  x1=${this.startCoord.x}
229
221
  y1=${this.startCoord.y}
@@ -234,7 +226,7 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
234
226
  />`}
235
227
  </svg>
236
228
  <slot></slot>
237
- </line-container>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),n=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));B(n,l,t,r)}firstUpdated(e){super.firstUpdated(e),this.hotspots=document.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)}};M.styles=[_i`
229
+ </line-container>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),n=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));B(n,l,t,r)}firstUpdated(e){super.firstUpdated(e),this.hotspots=document.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)}};M.styles=[wi`
238
230
  slot:not([name='prompt']) {
239
231
  // position: relative; /* qti-hotspot-choice relative to the slot */
240
232
  display: block;
@@ -257,8 +249,8 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
257
249
  top: 0px;
258
250
  left: 0px;
259
251
  }
260
- `],s([dt()],M.prototype,"_lines",2),s([dt()],M.prototype,"startCoord",2),s([dt()],M.prototype,"mouseCoord",2),s([Ai("svg")],M.prototype,"svgContainer",2),s([Ti({selector:"img"})],M.prototype,"grImage",2);customElements.define("qti-graphic-associate-interaction",M);import{css as Ri,html as Li,LitElement as Si}from"lit";var ye=class extends L(Si,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return Li` <slot></slot>
261
- <slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),n=r.split(",").map(l=>parseInt(l));switch(o){case"circle":{let[l,c,p]=n;t.style.left=l-p+"px",t.style.top=c-p+"px",t.style.width=t.style.height=2*p+"px"}break;case"rect":{let[l,c,p,d]=n;t.style.left=l+"px",t.style.top=c+"px",t.style.width=p-l+"px",t.style.height=d-c+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};ye.styles=Ri`
252
+ `],s([ut()],M.prototype,"_lines",2),s([ut()],M.prototype,"startCoord",2),s([ut()],M.prototype,"mouseCoord",2),s([Li("svg")],M.prototype,"svgContainer",2),s([Si({selector:"img"})],M.prototype,"grImage",2);customElements.define("qti-graphic-associate-interaction",M);import{css as Vi,html as Hi,LitElement as Di}from"lit";var qe=class extends L(Di,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return Hi` <slot></slot>
253
+ <slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),n=r.split(",").map(l=>parseInt(l));switch(o){case"circle":{let[l,c,p]=n;t.style.left=l-p+"px",t.style.top=c-p+"px",t.style.width=t.style.height=2*p+"px"}break;case"rect":{let[l,c,p,d]=n;t.style.left=l+"px",t.style.top=c+"px",t.style.width=p-l+"px",t.style.height=d-c+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};qe.styles=Vi`
262
254
  :host {
263
255
  display: inline-block;
264
256
  position: relative;
@@ -267,12 +259,12 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
267
259
  display: flex;
268
260
  gap: 1rem;
269
261
  }
270
- `;customElements.define("qti-graphic-gap-match-interaction",ye);import{css as Mi,html as Vi}from"lit";var xe=class extends v{render(){return Vi`
262
+ `;customElements.define("qti-graphic-gap-match-interaction",qe);import{css as Ni,html as $i}from"lit";var Ce=class extends v{render(){return $i`
271
263
  <slot name="prompt"></slot>
272
264
  <!-- slot for the prompt -->
273
265
  <slot></slot>
274
266
  <!-- slot for the image and hotspots -->
275
- `}setHotspotOrder(e){let{identifier:t}=e.detail,r=this._choiceElements.find(n=>n.getAttribute("identifier")===t),o=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(n=>n.order>0).length>=o){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(n=>!!n.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(n=>(n.order>n.order&&n.order--,n)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),n=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));B(n,l,t,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-choice-element-selected",this.setHotspotOrder),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-choice-element-selected",this.setHotspotOrder),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};xe.styles=[Mi`
267
+ `}setHotspotOrder(e){let{identifier:t}=e.detail,r=this._choiceElements.find(n=>n.getAttribute("identifier")===t),o=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(n=>n.order>0).length>=o){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(n=>!!n.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(n=>(n.order>n.order&&n.order--,n)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),n=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));B(n,l,t,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-choice-element-selected",this.setHotspotOrder),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-choice-element-selected",this.setHotspotOrder),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};Ce.styles=[Ni`
276
268
  slot:not([name='prompt']) {
277
269
  position: relative; /* qti-hotspot-choice relative to the slot */
278
270
  display: block;
@@ -283,12 +275,12 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
283
275
  pointer-events: none;
284
276
  user-select: none;
285
277
  }
286
- `];customElements.define("qti-graphic-order-interaction",xe);import{css as Di,html as Hi}from"lit";var Ee=class extends v{render(){return Hi`
278
+ `];customElements.define("qti-graphic-order-interaction",Ce);import{css as Oi,html as Pi}from"lit";var _e=class extends v{render(){return Pi`
287
279
  <slot name="prompt"></slot>
288
280
  <!-- slot for the prompt -->
289
281
  <slot></slot>
290
282
  <!-- slot for the image and hotspots -->
291
- `}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),n=r.split(",").map(l=>parseInt(l));B(o,n,e,t)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};Ee.styles=[Di`
283
+ `}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),n=r.split(",").map(l=>parseInt(l));B(o,n,e,t)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};_e.styles=[Oi`
292
284
  slot:not([name='prompt']) {
293
285
  position: relative; /* qti-hotspot-choice relative to the slot */
294
286
  display: block;
@@ -300,18 +292,18 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
300
292
  user-select: none;
301
293
  /* width:100%; */
302
294
  }
303
- `];customElements.define("qti-hotspot-interaction",Ee);import{html as re,LitElement as Oi}from"lit";import{html as Ni,LitElement as $i}from"lit";var ut=class extends $i{connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return Ni`
295
+ `];customElements.define("qti-hotspot-interaction",_e);import{html as re,LitElement as Ui}from"lit";import{html as Ii,LitElement as Fi}from"lit";var mt=class extends Fi{connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return Ii`
304
296
  <slot></slot>
305
297
  <slot name="qti-simple-associable-choice"></slot>
306
- `}};customElements.define("qti-simple-associable-choice",ut);import{property as Pi,state as Ii}from"lit/decorators.js";import{unsafeHTML as Bt}from"lit/directives/unsafe-html.js";var z=class extends L(Oi,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){constructor(){super(...arguments);this.response=[];this.responseIdentifier=""}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.response=[]}render(){return this.classList.contains("qti-match-tabular")?re`
298
+ `}};customElements.define("qti-simple-associable-choice",mt);import{property as Xi,state as Yi}from"lit/decorators.js";import{unsafeHTML as zt}from"lit/directives/unsafe-html.js";var z=class extends L(Ui,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){constructor(){super(...arguments);this.response=[];this.responseIdentifier=""}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.response=[]}render(){return this.classList.contains("qti-match-tabular")?re`
307
299
  <slot name="prompt"></slot>
308
300
  <table>
309
301
  <tr>
310
302
  <td></td>
311
- ${this.cols.map((e,t)=>re`<th part="r-header">${Bt(e.innerHTML)}</th>`)}
303
+ ${this.cols.map((e,t)=>re`<th part="r-header">${zt(e.innerHTML)}</th>`)}
312
304
  </tr>
313
305
  ${this.rows.map((e,t)=>re`<tr>
314
- <td part="c-header">${Bt(e.innerHTML)}</td>
306
+ <td part="c-header">${zt(e.innerHTML)}</td>
315
307
  ${this.cols.map((r,o)=>{let n=`${e.getAttribute("identifier")} ${r.getAttribute("identifier")}`;return re`<td>
316
308
  <input
317
309
  type="checkbox"
@@ -322,14 +314,14 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
322
314
  </td>`})}
323
315
  </tr>`)}
324
316
  </table>
325
- `:re`<slot name="prompt"></slot> <slot></slot>`}};z.styles=[],s([Ii()],z.prototype,"response",2),s([Pi({type:String,attribute:"response-identifier"})],z.prototype,"responseIdentifier",2);customElements.define("qti-match-interaction",z);import{css as Fi,html as Ui}from"lit";var qe=class extends f{constructor(){super()}reset(){}validate(){return!0}set response(e){}static get properties(){return W(k({},f.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return Ui` <slot name="prompt"></slot>
326
- <slot></slot>`}connectedCallback(){super.connectedCallback()}};qe.styles=[Fi``];customElements.define("qti-media-interaction",qe);import{css as Xi,html as zt,LitElement as Yi}from"lit";import{property as Bi}from"lit/decorators.js";var j=class extends L(Yi,"qti-simple-choice",!0,"drop-list"){render(){return zt` <slot name="prompt"> </slot>
317
+ `:re`<slot name="prompt"></slot> <slot></slot>`}};z.styles=[],s([Yi()],z.prototype,"response",2),s([Xi({type:String,attribute:"response-identifier"})],z.prototype,"responseIdentifier",2);customElements.define("qti-match-interaction",z);import{css as Bi,html as zi}from"lit";var ke=class extends f{constructor(){super()}reset(){}validate(){return!0}set response(e){}static get properties(){return W(A({},f.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return zi` <slot name="prompt"></slot>
318
+ <slot></slot>`}connectedCallback(){super.connectedCallback()}};ke.styles=[Bi``];customElements.define("qti-media-interaction",ke);import{css as ji,html as jt,LitElement as Ki}from"lit";import{property as Wi}from"lit/decorators.js";var j=class extends L(Ki,"qti-simple-choice",!0,"drop-list"){render(){return jt` <slot name="prompt"> </slot>
327
319
  <div part="container">
328
320
  <slot part="drags"> </slot>
329
321
  <div part="drops">
330
- ${Array.from(this.querySelectorAll("qti-simple-choice")).map((e,t)=>zt`<drop-list part="drop-list" identifier="droplist${t}"></drop-list>`)}
322
+ ${Array.from(this.querySelectorAll("qti-simple-choice")).map((e,t)=>jt`<drop-list part="drop-list" identifier="droplist${t}"></drop-list>`)}
331
323
  </div>
332
- </div>`}connectedCallback(){super.connectedCallback(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};j.layoutClass=["qti-choices-top","qti-choices-bottom","qti-choices-left","qti-choices-right"],j.styles=[Xi`
324
+ </div>`}connectedCallback(){super.connectedCallback(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};j.layoutClass=["qti-choices-top","qti-choices-bottom","qti-choices-left","qti-choices-right"],j.styles=[ji`
333
325
  [part='drags'] {
334
326
  display: flex;
335
327
  align-items: flex-start;
@@ -377,7 +369,7 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
377
369
  :host(.qti-choices-right) [part='container'] {
378
370
  flex-direction: row-reverse;
379
371
  }
380
- `],s([Bi({type:String})],j.prototype,"orientation",2);customElements.define("qti-order-interaction",j);import{LitElement as zi,css as ji,html as Ki}from"lit";var Ce=class extends zi{render(){return Ki`<slot></slot>`}};Ce.styles=[ji`
372
+ `],s([Wi({type:String})],j.prototype,"orientation",2);customElements.define("qti-order-interaction",j);import{LitElement as Gi,css as Ji,html as Zi}from"lit";var Ae=class extends Gi{render(){return Zi`<slot></slot>`}};Ae.styles=[Ji`
381
373
  :host {
382
374
  display: block;
383
375
  }
@@ -388,22 +380,22 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
388
380
  left: 50%;
389
381
  transform: translateX(-50%);
390
382
  }
391
- `];customElements.define("qti-position-object-interaction",Ce);import{LitElement as Wi,css as Gi,html as Ji}from"lit";var _e=class extends Wi{constructor(){super();this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}render(){return Ji`<slot></slot>`}dragElementHandler(e){e.preventDefault();let t=e.clientX-this.startX,r=e.clientY-this.startY;this.dragElement.style.left=this.dragElement.offsetLeft+t+"px",this.dragElement.style.top=this.dragElement.offsetTop+r+"px",this.startX=e.clientX,this.startY=e.clientY}connectedCallback(){super.connectedCallback(),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(e){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};_e.styles=[Gi`
383
+ `];customElements.define("qti-position-object-interaction",Ae);import{LitElement as Qi,css as es,html as ts}from"lit";var Te=class extends Qi{constructor(){super();this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}render(){return ts`<slot></slot>`}dragElementHandler(e){e.preventDefault();let t=e.clientX-this.startX,r=e.clientY-this.startY;this.dragElement.style.left=this.dragElement.offsetLeft+t+"px",this.dragElement.style.top=this.dragElement.offsetTop+r+"px",this.startX=e.clientX,this.startY=e.clientY}connectedCallback(){super.connectedCallback(),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(e){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};Te.styles=[es`
392
384
  :host {
393
385
  display: inline-block;
394
386
  position: relative;
395
387
  }
396
- `];customElements.define("qti-position-object-stage",_e);import{css as Zi,html as jt}from"lit";import{property as Kt,state as Qi}from"lit/decorators.js";import{repeat as es}from"lit/directives/repeat.js";import{styleMap as ts}from"lit/directives/style-map.js";var D=class extends f{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return jt` <slot name="prompt"></slot>
388
+ `];customElements.define("qti-position-object-stage",Te);import{css as rs,html as Kt}from"lit";import{property as Wt,state as is}from"lit/decorators.js";import{repeat as ss}from"lit/directives/repeat.js";import{styleMap as os}from"lit/directives/style-map.js";var H=class extends f{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return Kt` <slot name="prompt"></slot>
397
389
  <point-container>
398
- ${es(this._points,e=>e,(e,t)=>jt`
390
+ ${ss(this._points,e=>e,(e,t)=>Kt`
399
391
  <button
400
392
  part="point"
401
- style=${ts({position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
393
+ style=${os({position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
402
394
  @click=${r=>{r.stopPropagation(),this._points=this._points.filter((o,n)=>n!==t),this.saveResponse(this._points)}}
403
395
  ></button>
404
396
  `)}
405
397
  <slot></slot>
406
- </point-container>`}reset(){this._points=[]}validate(){return this._points.length>=this.minChoices&&this._points.length<=this.maxChoices}set response(e){this._points=Array.isArray(e)?e:[e]}connectedCallback(){super.connectedCallback(),this.querySelector("img").addEventListener("click",t=>{let r=t.offsetX,o=t.offsetY;this._points=[...this._points,r+" "+o],this.saveResponse(this._points)})}disconnectedCallback(){super.disconnectedCallback()}};D.styles=[Zi`
398
+ </point-container>`}reset(){this._points=[]}validate(){return this._points.length>=this.minChoices&&this._points.length<=this.maxChoices}set response(e){this._points=Array.isArray(e)?e:[e]}connectedCallback(){super.connectedCallback(),this.querySelector("img").addEventListener("click",t=>{let r=t.offsetX,o=t.offsetY;this._points=[...this._points,r+" "+o],this.saveResponse(this._points)})}disconnectedCallback(){super.disconnectedCallback()}};H.styles=[rs`
407
399
  host() {
408
400
  display: block;
409
401
  }
@@ -411,29 +403,29 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
411
403
  display: block;
412
404
  position: relative;
413
405
  }
414
- `],s([Kt({type:Number,attribute:"max-choices"})],D.prototype,"maxChoices",2),s([Kt({type:Number,attribute:"min-choices"})],D.prototype,"minChoices",2),s([Qi()],D.prototype,"_points",2);customElements.define("qti-select-point-interaction",D);import{css as rs,html as ke,nothing as mt}from"lit";import{property as K,query as Wt}from"lit/decorators.js";var x=class extends f{constructor(){super();this.stepLabel=!1;this.reverse=!1;this._handleDisabledChange=(e,t)=>{};this._handleReadonlyChange=(e,t)=>{};this.csLive=getComputedStyle(this)}set min(e){this._min=e,this.value=e,this.style.setProperty("--min",`${this._min}`)}get min(){return this._min}set max(e){this._max=e,this.style.setProperty("--max",`${this._max}`)}get max(){return this._max}set step(e){this._step=e,this.style.setProperty("--step",`${this._step}`)}get step(){return this._step}reset(){}validate(){return!0}set response(e){if(Array.isArray(e)){console.error("QtiSliderInteraction: response is an array, but should be a single value");return}let t=parseInt(e);if(Number.isNaN(t)){console.error("QtiSliderInteraction: response is not a number");return}this.value=t}render(){this.value<this.min&&(this.value=this.min),this.value>this.max&&(this.value=this.max);let e=(this.value-this.min)/(this.max-this.min)*100;return this.style.setProperty("--value-percentage",`${e}%`),this.setAttribute("aria-valuenow",this.value.toString()),ke`<slot name="prompt"></slot>
406
+ `],s([Wt({type:Number,attribute:"max-choices"})],H.prototype,"maxChoices",2),s([Wt({type:Number,attribute:"min-choices"})],H.prototype,"minChoices",2),s([is()],H.prototype,"_points",2);customElements.define("qti-select-point-interaction",H);import{css as ns,html as we,nothing as ht}from"lit";import{property as K,query as Gt}from"lit/decorators.js";var x=class extends f{constructor(){super();this.stepLabel=!1;this.reverse=!1;this._handleDisabledChange=(e,t)=>{};this._handleReadonlyChange=(e,t)=>{};this.csLive=getComputedStyle(this)}set min(e){this._min=e,this.value=e,this.style.setProperty("--min",`${this._min}`)}get min(){return this._min}set max(e){this._max=e,this.style.setProperty("--max",`${this._max}`)}get max(){return this._max}set step(e){this._step=e,this.style.setProperty("--step",`${this._step}`)}get step(){return this._step}reset(){}validate(){return!0}set response(e){if(Array.isArray(e)){console.error("QtiSliderInteraction: response is an array, but should be a single value");return}let t=parseInt(e);if(Number.isNaN(t)){console.error("QtiSliderInteraction: response is not a number");return}this.value=t}render(){this.value<this.min&&(this.value=this.min),this.value>this.max&&(this.value=this.max);let e=(this.value-this.min)/(this.max-this.min)*100;return this.style.setProperty("--value-percentage",`${e}%`),this.setAttribute("aria-valuenow",this.value.toString()),we`<slot name="prompt"></slot>
415
407
  <div id="slider" part="slider">
416
- ${this.csLive.getPropertyValue("--show-bounds")=="true"?ke`<div id="bounds" part="bounds">
408
+ ${this.csLive.getPropertyValue("--show-bounds")=="true"?we`<div id="bounds" part="bounds">
417
409
  <div>${this._min}</div>
418
410
  <div>${this._max}</div>
419
- </div>`:mt}
420
- ${this.csLive.getPropertyValue("--show-ticks")=="true"?ke`<div id="ticks" part="ticks"></div>`:mt}
411
+ </div>`:ht}
412
+ ${this.csLive.getPropertyValue("--show-ticks")=="true"?we`<div id="ticks" part="ticks"></div>`:ht}
421
413
  <div id="rail" part="rail" @mousedown=${this._onMouseDown} @touchstart=${this._onTouchMove}>
422
414
  <div id="knob" part="knob">
423
- ${this.csLive.getPropertyValue("--show-value")=="true"?ke`<div id="value" part="value">${this.value}</div>`:mt}
415
+ ${this.csLive.getPropertyValue("--show-value")=="true"?we`<div id="value" part="value">${this.value}</div>`:ht}
424
416
  </div>
425
417
  </div>
426
- </div>`}connectedCallback(){super.connectedCallback(),this.step=1,this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}_onTouchMove(e){let t=l=>{let{x:c}=this.getPositionFromEvent(l),p=c-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(p),l.stopPropagation()},r=()=>{document.removeEventListener("touchmove",t),document.removeEventListener("touchend",r),this.saveResponse(this.value.toString())};document.addEventListener("touchmove",t),document.addEventListener("touchend",r);let{x:o}=this.getPositionFromEvent(e),n=o-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(n),e.stopPropagation()}_onMouseDown(e){let t=n=>{let l=n.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(l),n.preventDefault(),n.stopPropagation()},r=()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),this.saveResponse(this.value.toString())};document.addEventListener("mousemove",t),document.addEventListener("mouseup",r);let o=e.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(o),e.preventDefault(),e.stopPropagation()}calculateValue(e){let t=this.min+(this.max-this.min)*e/this._rail.getBoundingClientRect().width,r=this.min+Math.round((t-this.min)/this._step)*this._step;this.value=r}getPositionFromEvent(e){let t;if(e.type=="touchstart"||e.type=="touchmove"||e.type=="touchend"||e.type=="touchcancel"){let r=typeof e.originalEvent=="undefined"?e:e.originalEvent,o=r.touches[0]||r.changedTouches[0];t={x:o.pageX,y:o.pageY}}else(e.type=="mousedown"||e.type=="mouseup"||e.type=="mousemove"||e.type=="mouseover"||e.type=="mouseout"||e.type=="mouseenter"||e.type=="mouseleave")&&(t={x:e.clientX,y:e.clientY});return t}};x.styles=[rs``],s([Wt("#knob")],x.prototype,"_knob",2),s([Wt("#rail")],x.prototype,"_rail",2),s([K({type:Number})],x.prototype,"value",2),s([K({type:Boolean,attribute:"step-label"})],x.prototype,"stepLabel",2),s([K({type:Boolean})],x.prototype,"reverse",2),s([K({type:Number,attribute:"lower-bound"})],x.prototype,"min",1),s([K({type:Number,attribute:"upper-bound"})],x.prototype,"max",1),s([K({type:Number,attribute:"step"})],x.prototype,"step",1),s([h("disabled",{waitUntilFirstUpdate:!0})],x.prototype,"_handleDisabledChange",2),s([h("readonly",{waitUntilFirstUpdate:!0})],x.prototype,"_handleReadonlyChange",2);customElements.define("qti-slider-interaction",x);import{LitElement as is,html as ss}from"lit";import{property as os}from"lit/decorators.js";var Ae=class extends is{render(){return ss`<button @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.closest("qti-assessment-item").processResponse()}};s([os({type:String})],Ae.prototype,"title",2);customElements.define("qti-end-attempt-interaction",Ae);import{LitElement as ns,css as as,html as ls}from"lit";var Te=class extends ns{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return ls` <slot name="qti-gap-img"></slot> `}};Te.styles=as`
418
+ </div>`}connectedCallback(){super.connectedCallback(),this.step=1,this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}_onTouchMove(e){let t=l=>{let{x:c}=this.getPositionFromEvent(l),p=c-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(p),l.stopPropagation()},r=()=>{document.removeEventListener("touchmove",t),document.removeEventListener("touchend",r),this.saveResponse(this.value.toString())};document.addEventListener("touchmove",t),document.addEventListener("touchend",r);let{x:o}=this.getPositionFromEvent(e),n=o-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(n),e.stopPropagation()}_onMouseDown(e){let t=n=>{let l=n.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(l),n.preventDefault(),n.stopPropagation()},r=()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),this.saveResponse(this.value.toString())};document.addEventListener("mousemove",t),document.addEventListener("mouseup",r);let o=e.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(o),e.preventDefault(),e.stopPropagation()}calculateValue(e){let t=this.min+(this.max-this.min)*e/this._rail.getBoundingClientRect().width,r=this.min+Math.round((t-this.min)/this._step)*this._step;this.value=r}getPositionFromEvent(e){let t;if(e.type=="touchstart"||e.type=="touchmove"||e.type=="touchend"||e.type=="touchcancel"){let r=typeof e.originalEvent=="undefined"?e:e.originalEvent,o=r.touches[0]||r.changedTouches[0];t={x:o.pageX,y:o.pageY}}else(e.type=="mousedown"||e.type=="mouseup"||e.type=="mousemove"||e.type=="mouseover"||e.type=="mouseout"||e.type=="mouseenter"||e.type=="mouseleave")&&(t={x:e.clientX,y:e.clientY});return t}};x.styles=[ns``],s([Gt("#knob")],x.prototype,"_knob",2),s([Gt("#rail")],x.prototype,"_rail",2),s([K({type:Number})],x.prototype,"value",2),s([K({type:Boolean,attribute:"step-label"})],x.prototype,"stepLabel",2),s([K({type:Boolean})],x.prototype,"reverse",2),s([K({type:Number,attribute:"lower-bound"})],x.prototype,"min",1),s([K({type:Number,attribute:"upper-bound"})],x.prototype,"max",1),s([K({type:Number,attribute:"step"})],x.prototype,"step",1),s([h("disabled",{waitUntilFirstUpdate:!0})],x.prototype,"_handleDisabledChange",2),s([h("readonly",{waitUntilFirstUpdate:!0})],x.prototype,"_handleReadonlyChange",2);customElements.define("qti-slider-interaction",x);import{LitElement as as,html as ls}from"lit";import{property as cs}from"lit/decorators.js";var Re=class extends as{render(){return ls`<button @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.closest("qti-assessment-item").processResponse()}};s([cs({type:String})],Re.prototype,"title",2);customElements.define("qti-end-attempt-interaction",Re);import{LitElement as ps,css as ds,html as us}from"lit";var Le=class extends ps{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return us` <slot name="qti-gap-img"></slot> `}};Le.styles=ds`
427
419
  :host {
428
420
  position: absolute;
429
421
  }
430
- `;customElements.define("qti-associable-hotspot",Te);import{LitElement as cs}from"lit";import{property as ps}from"lit/decorators.js";var we=class extends cs{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};s([ps({type:Number,reflect:!0})],we.prototype,"tabindex",2);customElements.define("qti-gap-img",we);import{html as ds,LitElement as us}from"lit";import{property as ms}from"lit/decorators.js";var Re=class extends us{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return ds`<slot></slot>`}};s([ms({type:Number,reflect:!0})],Re.prototype,"tabindex",2);customElements.define("qti-gap-text",Re);import{html as hs,LitElement as fs}from"lit";import{property as bs}from"lit/decorators.js";var Le=class extends fs{constructor(){super(...arguments);this.tabindex=0}render(){return hs` <slot name="qti-gap-text"></slot>`}};s([bs({type:Number,reflect:!0})],Le.prototype,"tabindex",2);customElements.define("qti-gap",Le);import{css as gs}from"lit";import{property as vs}from"lit/decorators.js";var ie=class extends y{};ie.styles=gs`
422
+ `;customElements.define("qti-associable-hotspot",Le);import{LitElement as ms}from"lit";import{property as hs}from"lit/decorators.js";var Se=class extends ms{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};s([hs({type:Number,reflect:!0})],Se.prototype,"tabindex",2);customElements.define("qti-gap-img",Se);import{html as fs,LitElement as bs}from"lit";import{property as gs}from"lit/decorators.js";var Me=class extends bs{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return fs`<slot></slot>`}};s([gs({type:Number,reflect:!0})],Me.prototype,"tabindex",2);customElements.define("qti-gap-text",Me);import{html as vs,LitElement as ys}from"lit";import{property as xs}from"lit/decorators.js";var Ve=class extends ys{constructor(){super(...arguments);this.tabindex=0}render(){return vs` <slot name="qti-gap-text"></slot>`}};s([xs({type:Number,reflect:!0})],Ve.prototype,"tabindex",2);customElements.define("qti-gap",Ve);import{css as Es}from"lit";import{property as qs}from"lit/decorators.js";var ie=class extends y{};ie.styles=Es`
431
423
  :host {
432
424
  position: absolute;
433
425
  }
434
- `,s([vs({attribute:"aria-ordervalue",type:Number,reflect:!0})],ie.prototype,"order",2);customElements.define("qti-hotspot-choice",ie);import{customElement as ys}from"lit/decorators.js";import{html as xs}from"lit";var Se=class extends y{render(){return xs`<div part="ch"><div part="cha"></div></div>
435
- <slot></slot> `}};Se=s([ys("qti-hottext")],Se);import{LitElement as Es}from"lit";var ht=class extends Es{};customElements.define("qti-inline-choice",ht);import{customElement as qs}from"lit/decorators.js";import{css as Cs,html as _s}from"lit";var se=class extends y{render(){return _s`<div part="ch"><div part="cha"></div></div>
436
- <slot></slot> `}};se.styles=Cs`
426
+ `,s([qs({attribute:"aria-ordervalue",type:Number,reflect:!0})],ie.prototype,"order",2);customElements.define("qti-hotspot-choice",ie);import{customElement as Cs}from"lit/decorators.js";import{html as _s}from"lit";var He=class extends y{render(){return _s`<div part="ch"><div part="cha"></div></div>
427
+ <slot></slot> `}};He=s([Cs("qti-hottext")],He);import{LitElement as ks}from"lit";var ft=class extends ks{};customElements.define("qti-inline-choice",ft);import{customElement as As}from"lit/decorators.js";import{css as Ts,html as ws}from"lit";var se=class extends y{render(){return ws`<div part="ch"><div part="cha"></div></div>
428
+ <slot></slot> `}};se.styles=Ts`
437
429
  :host {
438
430
  display: flex;
439
431
  }
@@ -441,4 +433,4 @@ import{a as gt,b as h}from"../chunk-QROD4MVT.js";import{a as bt}from"../chunk-5G
441
433
  width: 100%;
442
434
  display: block;
443
435
  }
444
- `,se=s([qs("qti-simple-choice")],se);export{Tt as Events,H as OutcomeVariable,ee as QtPrintedVariable,je as QtiAnd,A as QtiAssessmentItem,Te as QtiAssociableHotspot,te as QtiAssociateInteraction,me as QtiBaseValue,y as QtiChoice,At as QtiChoiceElementSelected,F as QtiChoiceInteraction,ne as QtiCompanionMaterialsInfo,q as QtiConditionExpression,Ke as QtiContains,We as QtiCorrect,Ae as QtiEndAttemptInteraction,he as QtiEqual,fe as QtiEqualRounded,u as QtiExpression,w as QtiExtendedTextInteraction,Pe as QtiFeedbackBlock,pe as QtiFeedbackInline,Le as QtiGap,we as QtiGapImg,ve as QtiGapMatchInteraction,Re as QtiGapText,M as QtiGraphicAssociateInteraction,ye as QtiGraphicGapMatchInteraction,xe as QtiGraphicOrderInteraction,Ge as QtiGt,Je as QtiGte,ie as QtiHotspotChoice,Ee as QtiHotspotInteraction,Se as QtiHottext,Ue as QtiHottextInteraction,ht as QtiInlineChoice,I as QtiInlineChoiceInteraction,yt as QtiInteractionChanged,kt as QtiInteractionResponse,Ze as QtiIsNull,_t as QtiLooseChoice,Qe as QtiLt,et as QtiLte,be as QtiMapResponse,X as QtiMapping,rt as QtiMatch,z as QtiMatchInteraction,qe as QtiMediaInteraction,it as QtiMember,Oe as QtiModalFeedback,st as QtiMultiple,ot as QtiNot,nt as QtiOr,j as QtiOrderInteraction,at as QtiOrdered,vt as QtiOutcomeChanged,P as QtiOutcomeDeclaration,pt as QtiPortableCustomInteraction,_e as QtiPositionObjectStage,lt as QtiProduct,He as QtiPrompt,qt as QtiRegisterChoice,Ct as QtiRegisterHotspot,Et as QtiRegisterInteraction,xt as QtiRegisterVariable,Xe as QtiResponseCondition,O as QtiResponseDeclaration,J as QtiResponseElse,Be as QtiResponseElseIf,Z as QtiResponseIf,U as QtiResponseProcessing,S as QtiRule,Ce as QtiSPositionObjectInteraction,D as QtiSelectPointInteraction,Ye as QtiSetOutcomeValue,ut as QtiSimpleAssociableChoice,se as QtiSimpleChoice,x as QtiSliderInteraction,De as QtiStylesheet,_ as QtiTextEntryInteraction,ct as QtiVariable,N as ResponseVariable,le as qtiContentBody,T as qtiRubricBlock};
436
+ `,se=s([As("qti-simple-choice")],se);export{wt as Events,D as OutcomeVariable,ee as QtPrintedVariable,Ke as QtiAnd,T as QtiAssessmentItem,Le as QtiAssociableHotspot,te as QtiAssociateInteraction,fe as QtiBaseValue,y as QtiChoice,Tt as QtiChoiceElementSelected,F as QtiChoiceInteraction,ne as QtiCompanionMaterialsInfo,q as QtiConditionExpression,We as QtiContains,Ge as QtiCorrect,Re as QtiEndAttemptInteraction,be as QtiEqual,ge as QtiEqualRounded,u as QtiExpression,R as QtiExtendedTextInteraction,ue as QtiFeedbackBlock,pe as QtiFeedbackInline,Ve as QtiGap,Se as QtiGapImg,Ee as QtiGapMatchInteraction,Me as QtiGapText,M as QtiGraphicAssociateInteraction,qe as QtiGraphicGapMatchInteraction,Ce as QtiGraphicOrderInteraction,Je as QtiGt,Ze as QtiGte,ie as QtiHotspotChoice,_e as QtiHotspotInteraction,He as QtiHottext,Xe as QtiHottextInteraction,ft as QtiInlineChoice,I as QtiInlineChoiceInteraction,xt as QtiInteractionChanged,At as QtiInteractionResponse,Qe as QtiIsNull,kt as QtiLooseChoice,et as QtiLt,tt as QtiLte,ve as QtiMapResponse,X as QtiMapping,it as QtiMatch,z as QtiMatchInteraction,ke as QtiMediaInteraction,st as QtiMember,de as QtiModalFeedback,ot as QtiMultiple,nt as QtiNot,at as QtiOr,j as QtiOrderInteraction,lt as QtiOrdered,yt as QtiOutcomeChanged,P as QtiOutcomeDeclaration,dt as QtiPortableCustomInteraction,Te as QtiPositionObjectStage,ct as QtiProduct,Oe as QtiPrompt,Ct as QtiRegisterChoice,_t as QtiRegisterHotspot,qt as QtiRegisterInteraction,Et as QtiRegisterVariable,Ye as QtiResponseCondition,O as QtiResponseDeclaration,J as QtiResponseElse,ze as QtiResponseElseIf,Z as QtiResponseIf,U as QtiResponseProcessing,S as QtiRule,Ae as QtiSPositionObjectInteraction,H as QtiSelectPointInteraction,Be as QtiSetOutcomeValue,mt as QtiSimpleAssociableChoice,se as QtiSimpleChoice,x as QtiSliderInteraction,ye as QtiStringMatch,$e as QtiStylesheet,k as QtiTextEntryInteraction,pt as QtiVariable,N as ResponseVariable,le as qtiContentBody,w as qtiRubricBlock};