@citolab/qti-components 6.0.20 → 6.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/audience-context-444478f4.d.ts +8 -0
  2. package/dist/chunk-3O4URV5U.cjs +1 -0
  3. package/dist/chunk-5GG2XAUT.js +1 -0
  4. package/dist/chunk-6RJ7J4AE.cjs +1 -0
  5. package/dist/{chunk-AQI672QR.js → chunk-GEVRCVN2.cjs} +3 -3
  6. package/dist/chunk-GGEPFBR7.cjs +1 -0
  7. package/dist/chunk-HOQW4KDA.cjs +1 -0
  8. package/dist/{chunk-5RZQOWDC.js → chunk-YDFMBQT4.js} +2 -2
  9. package/dist/context/index.cjs +1 -0
  10. package/dist/context/index.d.cts +1 -0
  11. package/dist/context/index.d.ts +1 -1
  12. package/dist/context/index.js +1 -1
  13. package/dist/decorators/index.cjs +1 -0
  14. package/dist/decorators/index.d.cts +37 -0
  15. package/dist/index.cjs +2889 -0
  16. package/dist/index.d.cts +1063 -0
  17. package/dist/index.d.ts +24 -16
  18. package/dist/index.js +73 -63
  19. package/dist/{qti-assessment-item-68bcc951.d.ts → qti-assessment-item-c1eb7de3.d.ts} +5 -5
  20. package/dist/qti-components/index.cjs +419 -0
  21. package/dist/qti-components/index.d.cts +560 -0
  22. package/dist/qti-components/index.d.ts +21 -12
  23. package/dist/qti-components/index.js +76 -66
  24. package/dist/qti-item/index.cjs +1 -0
  25. package/dist/qti-item/index.d.cts +4 -0
  26. package/dist/qti-item/index.d.ts +2 -2
  27. package/dist/qti-item/index.js +1 -1
  28. package/dist/{qti-item-8c26fa9e.d.ts → qti-item-e2edd87f.d.ts} +1 -1
  29. package/dist/qti-item-react/index.cjs +1 -0
  30. package/dist/qti-item-react/index.d.cts +30 -0
  31. package/dist/qti-item-react/index.d.ts +3 -3
  32. package/dist/qti-item-react/index.js +1 -1
  33. package/dist/{qti-simple-choice-3e910d03.d.ts → qti-simple-choice-e28cfb34.d.ts} +2 -2
  34. package/dist/qti-transform/index.cjs +17 -0
  35. package/dist/qti-transform/index.d.cts +17 -0
  36. package/package.json +24 -14
  37. package/dist/chunk-FIJLDR56.js +0 -2204
  38. package/dist/chunk-HQKT4SJF.js +0 -1
  39. package/dist/chunk-RPGALUIV.js +0 -1
  40. package/dist/chunk-UD6XWG6V.js +0 -2205
  41. package/dist/context-a957e50e.d.ts +0 -9
  42. package/dist/custom-elements.json +0 -6772
  43. package/dist/index.css +0 -2193
  44. package/dist/qti-assessment-item-f1fcf393.d.ts +0 -120
  45. package/dist/qti-item-e1fc6a70.d.ts +0 -30
  46. package/dist/qti-simple-choice-ca9b86db.d.ts +0 -352
  47. package/dist/qti-simple-choice-d1392d78.d.ts +0 -352
@@ -1,20 +1,20 @@
1
- import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.js";import{a as f}from"../chunk-WFLR5TH7.js";import{a as C,b as H,c as s}from"../chunk-NMCIOGD2.js";var ht={};var ft={};var gt={};var bt={};var vt={};var yt={};var Et={};var xt={};var qt={};var Ct={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 O=class{constructor({mapping:i,correctResponse:e,cardinality:t,baseType:r,identifier:o}){this._basetype="string";this._mapping=i,this._correctResponse=e,this._cardinality=t,this._basetype=r,this._identifier=o}get mapping(){return this._mapping}get correctResponse(){return this._correctResponse}get cardinality(){return this._cardinality}get baseType(){return this._basetype}get identifier(){return this._identifier}get value(){return this._candidateResponse}set value(i){this._candidateResponse=i}};var V=class{constructor(){this.value=void 0}};import{customElement as Bt,property as Q}from"lit/decorators.js";import{html as zt,LitElement as Kt}from"lit";var k=class extends Kt{constructor(){super();this.variables=[];this.feedbackElements=[];this.interactionElements=[];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 zt`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-item-connected",{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}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);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(),!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(a=>a.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}getVariableValue(e){let t=this.variables.find(r=>r.identifier===e);return t?t.value:(console.warn(`Variable with identifier ${e} was not found`),null)}getResponse(e){let t=this.variables.find(o=>o.identifier===e);return t instanceof O?t:null}getOutcome(e){let t=this.variables.find(r=>r.identifier===e);return t instanceof V?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=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}r.value=t,this.dispatchEvent(new CustomEvent("qti-outcome-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,outcomeIdentifier:e,value:t}}))}};s([Q({type:Boolean})],k.prototype,"disabled",2),s([Q({type:Boolean})],k.prototype,"readonly",2),s([Q({type:String})],k.prototype,"title",2),s([Q({type:String})],k.prototype,"identifier",2),s([f("disabled",{waitUntilFirstUpdate:!0})],k.prototype,"_handleDisabledChange",2),s([f("readonly",{waitUntilFirstUpdate:!0})],k.prototype,"_handleReadonlyChange",2),k=s([Bt("qti-assessment-item")],k);import{LitElement as jt}from"lit";var Ne=class extends jt{constructor(){super()}connectedCallback(){super.connectedCallback();let e=this.closest("qti-assessment-item"),t=this.getAttribute("href"),r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.media="screen",r.href=t,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",Ne);import{customElement as Wt}from"lit/decorators.js";import{html as Jt,LitElement as Zt}from"lit";import{css as Gt}from"lit";var _t=Gt`
1
+ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.js";import{a as f}from"../chunk-WFLR5TH7.js";import{a as C,b as D,c as s}from"../chunk-NMCIOGD2.js";var bt={};var gt={};var vt={};var yt={};var xt={};var Et={};var qt={};var Ct={};var _t={};var kt={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({mapping:i,correctResponse:e,cardinality:t,baseType:r,identifier:o}){this._basetype="string";this._mapping=i,this._correctResponse=e,this._cardinality=t,this._basetype=r,this._identifier=o}get mapping(){return this._mapping}get correctResponse(){return this._correctResponse}get cardinality(){return this._cardinality}get baseType(){return this._basetype}get identifier(){return this._identifier}get value(){return this._candidateResponse}set value(i){this._candidateResponse=i}};var O=class{constructor(){this.value=void 0}};import{customElement as Kt,property as ee}from"lit/decorators.js";import{html as Wt,LitElement as Gt}from"lit";var k=class extends Gt{constructor(){super();this.variables=[];this.feedbackElements=[];this.interactionElements=[];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 Wt`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-item-connected",{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}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);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(),!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(a=>a.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){let t=this.variables.find(r=>r.identifier===e);return t||(console.warn(`Variable with identifier ${e} was not found`),null)}getResponse(e){let t=this.variables.find(o=>o.identifier===e);return t instanceof H?t:null}getOutcome(e){let t=this.variables.find(r=>r.identifier===e);return t instanceof O?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=this.getOutcome(e);if(!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),this.dispatchEvent(new CustomEvent("qti-outcome-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,outcomeIdentifier:e,value:t}}))}};s([ee({type:Boolean})],k.prototype,"disabled",2),s([ee({type:Boolean})],k.prototype,"readonly",2),s([ee({type:String})],k.prototype,"title",2),s([ee({type:String})],k.prototype,"identifier",2),s([f("disabled",{waitUntilFirstUpdate:!0})],k.prototype,"_handleDisabledChange",2),s([f("readonly",{waitUntilFirstUpdate:!0})],k.prototype,"_handleReadonlyChange",2),k=s([Kt("qti-assessment-item")],k);import{LitElement as Jt}from"lit";var Ne=class extends Jt{constructor(){super()}connectedCallback(){super.connectedCallback();let e=this.closest("qti-assessment-item"),t=this.getAttribute("href"),r=document.createElement("link");r.rel="stylesheet",r.type="text/css",r.media="screen",r.href=t,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",Ne);import{customElement as Qt}from"lit/decorators.js";import{html as er,LitElement as tr}from"lit";import{css as Zt}from"lit";var Rt=Zt`
2
2
  :host {
3
3
  display: block;
4
4
  }
5
- `;var $=class extends Zt{render(){return Jt` <slot name="qti-rubric-block"></slot>
6
- <slot></slot>`}};$.styles=_t,$=s([Wt("qti-item-body")],$);import{html as Qt,LitElement as er}from"lit";var De=class extends er{render(){return Qt` <slot></slot> `}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};customElements.define("qti-prompt",De);import{html as tr}from"lit/static-html.js";import{property as K}from"lit/decorators.js";import{LitElement as rr}from"lit";var ir={SPACE:32},y=class extends rr{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 ir.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"),tr` <slot></slot> `}};s([K({type:String})],y.prototype,"identifier",2),s([K({type:Number,reflect:!0})],y.prototype,"tabindex",2),s([K({reflect:!0,type:Boolean,attribute:"aria-disabled",converter:{toAttribute:n=>n}})],y.prototype,"disabled",2),s([K({reflect:!0,type:Boolean,attribute:"aria-readonly",converter:{toAttribute:n=>n}})],y.prototype,"readonly",2),s([K({reflect:!0,type:Boolean,attribute:"aria-checked",converter:{toAttribute:n=>n}})],y.prototype,"checked",2),s([f("disabled",{waitUntilFirstUpdate:!0})],y.prototype,"handleDisabledChange",1);import{html as sr,LitElement as or}from"lit";var N=class extends or{render(){return sr``}};customElements.define("qti-variabledeclaration",N);import{property as He}from"lit/decorators.js";var P=class extends N{connectedCallback(){super.connectedCallback();let e=new O({baseType:this.baseType,identifier:this.identifier,correctResponse:this.correctResponse,cardinality:this.cardinality||"single",mapping:this.mapping});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([He({type:String,attribute:"base-type"})],P.prototype,"baseType",2),s([He({type:String,attribute:"identifier"})],P.prototype,"identifier",2),s([He({type:String,attribute:"cardinality"})],P.prototype,"cardinality",2);customElements.define("qti-response-declaration",P);var Oe=class extends N{static get observedAttributes(){return["identifier","cardinality","base-type"]}get interpolationTable(){let i=this.querySelector("qti-interpolation-table");if(i){let e=new Map;for(let t of i.querySelectorAll("qti-interpolation-table-entry")){!t.getAttribute("source-value")&&t.getAttribute("target-value")&&console.error("source-value or target-value is missing in qti-interpolation-table-entry");let r=parseInt(t.getAttribute("source-value")),o=parseInt(t.getAttribute("target-value"));(isNaN(r)||isNaN(o))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),e.set(r,o)}}return null}connectedCallback(){var t;super.connectedCallback();let i=this.getAttribute("identifier"),e=new V;e.identifier=i,e.value=(t=this.querySelector("qti-default-value qti-value"))==null?void 0:t.innerHTML,this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};customElements.define("qti-outcome-declaration",Oe);import{LitElement as nr}from"lit";import{customElement as ar}from"lit/decorators.js";var ee=class extends nr{};ee=s([ar("qti-companion-materials-info")],ee);import{LitElement as lr,css as cr,html as pr}from"lit";import{customElement as dr,property as te}from"lit/decorators.js";import{ContextConsumer as ur}from"@lit-labs/context";var A=class extends lr{constructor(){super(...arguments);this.logger=new ur(this,ut,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 pr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};A.styles=cr`
5
+ `;var $=class extends tr{render(){return er` <slot name="qti-rubric-block"></slot>
6
+ <slot></slot>`}};$.styles=Rt,$=s([Qt("qti-item-body")],$);import{html as rr,LitElement as ir}from"lit";var De=class extends ir{render(){return rr` <slot></slot> `}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};customElements.define("qti-prompt",De);import{html as sr}from"lit/static-html.js";import{property as K}from"lit/decorators.js";import{LitElement as or}from"lit";var nr={SPACE:32},y=class extends or{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 nr.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"),sr` <slot></slot> `}};s([K({type:String})],y.prototype,"identifier",2),s([K({type:Number,reflect:!0})],y.prototype,"tabindex",2),s([K({reflect:!0,type:Boolean,attribute:"aria-disabled",converter:{toAttribute:n=>n}})],y.prototype,"disabled",2),s([K({reflect:!0,type:Boolean,attribute:"aria-readonly",converter:{toAttribute:n=>n}})],y.prototype,"readonly",2),s([K({reflect:!0,type:Boolean,attribute:"aria-checked",converter:{toAttribute:n=>n}})],y.prototype,"checked",2),s([f("disabled",{waitUntilFirstUpdate:!0})],y.prototype,"handleDisabledChange",1);import{html as ar,LitElement as lr}from"lit";var V=class extends lr{render(){return ar``}};customElements.define("qti-variabledeclaration",V);import{property as He}from"lit/decorators.js";var P=class extends V{connectedCallback(){super.connectedCallback();let e=new H({baseType:this.baseType,identifier:this.identifier,correctResponse:this.correctResponse,cardinality:this.cardinality||"single",mapping:this.mapping});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([He({type:String,attribute:"base-type"})],P.prototype,"baseType",2),s([He({type:String})],P.prototype,"identifier",2),s([He({type:String})],P.prototype,"cardinality",2);customElements.define("qti-response-declaration",P);import{property as Oe}from"lit/decorators.js";var I=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")),a=parseInt(r.getAttribute("target-value"));(isNaN(o)||isNaN(a))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),t.set(o,a)}}return null}connectedCallback(){super.connectedCallback();let e=new O;e.identifier=this.identifier,e.cardinality=this.cardinality,e.baseType=this.baseType,(e.cardinality==="multiple"||e.cardinality==="ordered")&&(e.value=[]);let t=Array.from(this.querySelectorAll("qti-default-value > qti-value")).map(r=>r.innerHTML);t.length>1&&(e.value=t),t.length===1&&(e.cardinality==="multiple"||e.cardinality==="ordered"?e.value=t:e.value=t[0]),t||(e.value=null),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};s([Oe({type:String,attribute:"base-type"})],I.prototype,"baseType",2),s([Oe({type:String})],I.prototype,"identifier",2),s([Oe({type:String})],I.prototype,"cardinality",2);customElements.define("qti-outcome-declaration",I);import{LitElement as cr}from"lit";import{customElement as pr}from"lit/decorators.js";var te=class extends cr{};te=s([pr("qti-companion-materials-info")],te);import{LitElement as dr,css as ur,html as mr}from"lit";import{customElement as hr,property as re}from"lit/decorators.js";import{ContextConsumer as fr}from"@lit-labs/context";var R=class extends dr{constructor(){super(...arguments);this.logger=new fr(this,ht,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 mr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};R.styles=ur`
7
7
  :host {
8
8
  display: block;
9
9
  }
10
- `,s([te({type:String})],A.prototype,"id",2),s([te({type:String})],A.prototype,"use",2),s([te({type:String})],A.prototype,"view",2),s([te({type:String,attribute:"class"})],A.prototype,"classNames",2),s([f("classNames",{waitUntilFirstUpdate:!0})],A.prototype,"handleclassNamesChange",1),A=s([dr("qti-rubric-block")],A);import{LitElement as mr,html as hr}from"lit";import{customElement as fr}from"lit/decorators.js";var re=class extends mr{render(){return hr`<slot></slot>`}};re=s([fr("qti-content-body")],re);import{css as br,html as vr}from"lit";import{LitElement as gr}from"lit";import{property as ie}from"lit/decorators.js";var x=class extends gr{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){var o;let t=this.closest("qti-assessment-item").getOutcome(e);if(this.outcomeIdentifier!==e||!t)return;let r=Array.isArray(t)?t.includes(this.identifier):this.identifier===((o=t==null?void 0:t.value)==null?void 0:o.toString());this.showFeedback(r)}showFeedback(e){this.showStatus=e?"on":"off"}};s([ie({type:String,attribute:"show-hide"})],x.prototype,"showHide",2),s([ie({type:String,attribute:"outcome-identifier"})],x.prototype,"outcomeIdentifier",2),s([ie({type:String})],x.prototype,"identifier",2),s([ie({type:String,attribute:!1})],x.prototype,"showStatus",2);var se=class extends x{constructor(){super(...arguments);this.render=()=>vr` <slot class="${this.showStatus}"></slot> `}};se.styles=br`
10
+ `,s([re({type:String})],R.prototype,"id",2),s([re({type:String})],R.prototype,"use",2),s([re({type:String})],R.prototype,"view",2),s([re({type:String,attribute:"class"})],R.prototype,"classNames",2),s([f("classNames",{waitUntilFirstUpdate:!0})],R.prototype,"handleclassNamesChange",1),R=s([hr("qti-rubric-block")],R);import{LitElement as br,html as gr}from"lit";import{customElement as vr}from"lit/decorators.js";var ie=class extends br{render(){return gr`<slot></slot>`}};ie=s([vr("qti-content-body")],ie);import{css as xr,html as Er}from"lit";import{LitElement as yr}from"lit";import{property as se}from"lit/decorators.js";var E=class extends yr{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){var o;let t=this.closest("qti-assessment-item").getOutcome(e);if(this.outcomeIdentifier!==e||!t)return;let r=Array.isArray(t)?t.includes(this.identifier):this.identifier===((o=t==null?void 0:t.value)==null?void 0:o.toString());this.showFeedback(r)}showFeedback(e){this.showStatus=e?"on":"off"}};s([se({type:String,attribute:"show-hide"})],E.prototype,"showHide",2),s([se({type:String,attribute:"outcome-identifier"})],E.prototype,"outcomeIdentifier",2),s([se({type:String})],E.prototype,"identifier",2),s([se({type:String,attribute:!1})],E.prototype,"showStatus",2);var oe=class extends E{constructor(){super(...arguments);this.render=()=>Er` <slot class="${this.showStatus}"></slot> `}};oe.styles=xr`
11
11
  .on {
12
12
  display: inline-block;
13
13
  }
14
14
  .off {
15
15
  display: none;
16
16
  }
17
- `;customElements.define("qti-feedback-inline",se);import{html as yr}from"lit";var Ve=class extends x{render(){return yr`
17
+ `;customElements.define("qti-feedback-inline",oe);import{html as qr}from"lit";var $e=class extends E{render(){return qr`
18
18
  <style>
19
19
  .on {
20
20
  display: inline-block;
@@ -26,7 +26,7 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
26
26
  <div class="feedback ${this.showStatus}">
27
27
  <slot></slot>
28
28
  </div>
29
- `}};customElements.define("qti-modal-feedback",Ve);import{html as Er}from"lit";var $e=class extends x{render(){return Er`
29
+ `}};customElements.define("qti-modal-feedback",$e);import{html as Cr}from"lit";var Pe=class extends E{render(){return Cr`
30
30
  <style>
31
31
  .on {
32
32
  display: inline-block;
@@ -38,11 +38,11 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
38
38
  <div class="feedback ${this.showStatus}">
39
39
  <slot></slot>
40
40
  </div>
41
- `}firstUpdated(i){this.checkShowFeedback(this.outcomeIdentifier)}};customElements.define("qti-feedback-block",$e);import{css as qr,html as Cr}from"lit";import{ifDefined as kt}from"lit/directives/if-defined.js";import{property as Pe}from"lit/decorators.js";import{LitElement as xr}from"lit";var m=class extends xr{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([Pe({attribute:"response-identifier"})],m.prototype,"responseIdentifier",2),s([Pe({reflect:!0,type:Boolean})],m.prototype,"disabled",2),s([Pe({reflect:!0,type:Boolean})],m.prototype,"readonly",2);import{customElement as _r,property as oe,state as At}from"lit/decorators.js";import{createRef as kr}from"lit/directives/ref.js";var _=class extends m{constructor(){super(...arguments);this._value="";this._size=5;this.inputRef=kr()}handleclassNamesChange(e,t){t.split(" ").forEach(o=>{if(o.startsWith("qti-input-width")){let a=o.replace("qti-input-width-","");this._size=parseInt(a)}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[qr`
41
+ `}firstUpdated(i){this.checkShowFeedback(this.outcomeIdentifier)}};customElements.define("qti-feedback-block",Pe);import{css as kr,html as Rr}from"lit";import{ifDefined as At}from"lit/directives/if-defined.js";import{property as Ie}from"lit/decorators.js";import{LitElement as _r}from"lit";var m=class extends _r{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"})],m.prototype,"responseIdentifier",2),s([Ie({reflect:!0,type:Boolean})],m.prototype,"disabled",2),s([Ie({reflect:!0,type:Boolean})],m.prototype,"readonly",2);import{customElement as Ar,property as ne,state as Tt}from"lit/decorators.js";import{createRef as Tr}from"lit/directives/ref.js";var _=class extends m{constructor(){super(...arguments);this._value="";this._size=5;this.inputRef=Tr()}handleclassNamesChange(e,t){t.split(" ").forEach(o=>{if(o.startsWith("qti-input-width")){let a=o.replace("qti-input-width-","");this._size=parseInt(a)}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[kr`
42
42
  :host {
43
43
  display: inline-flex;
44
44
  }
45
- `]}render(){return Cr` <input
45
+ `]}render(){return Rr` <input
46
46
  part="input"
47
47
  spellcheck="false"
48
48
  autocomplete="off"
@@ -50,13 +50,13 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
50
50
  @keyup="${this.textChanged}"
51
51
  @change="${this.textChanged}"
52
52
  type="text"
53
- placeholder="${kt(this.placeholderText?this.placeholderText:void 0)}"
53
+ placeholder="${At(this.placeholderText?this.placeholderText:void 0)}"
54
54
  .value="${this._value}"
55
55
  size="${this._size}"
56
- pattern="${kt(this.patternMask?this.patternMask:void 0)}"
56
+ pattern="${At(this.patternMask?this.patternMask:void 0)}"
57
57
  ?disabled="${this.disabled}"
58
58
  ?readonly="${this.readonly}"
59
- />`}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([oe({type:Number,attribute:"expected-length"})],_.prototype,"expectedLength",2),s([oe({type:String,attribute:"pattern-mask"})],_.prototype,"patternMask",2),s([oe({type:String,attribute:"placeholder-text"})],_.prototype,"placeholderText",2),s([At()],_.prototype,"_value",2),s([At()],_.prototype,"_size",2),s([oe({type:String,attribute:"class"})],_.prototype,"classNames",2),s([f("classNames")],_.prototype,"handleclassNamesChange",1),_=s([_r("qti-text-entry-interaction")],_);import{css as Ar,html as wr}from"lit";import{ifDefined as Ie}from"lit/directives/if-defined.js";import{ref as Tr,createRef as Rr}from"lit/directives/ref.js";import{customElement as Lr,property as ne,state as Sr}from"lit/decorators.js";var w=class extends m{constructor(){super(...arguments);this.textareaRef=Rr();this._value=""}handleclassNamesChange(e,t){this.classNames.split(" ").forEach(o=>{if(o.startsWith("qti-height-lines")){let a=o.replace("qti-height-lines-","");this.textareaRef&&(this.textareaRef.value.rows=parseInt(a))}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[Ar`
59
+ />`}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([ne({type:Number,attribute:"expected-length"})],_.prototype,"expectedLength",2),s([ne({type:String,attribute:"pattern-mask"})],_.prototype,"patternMask",2),s([ne({type:String,attribute:"placeholder-text"})],_.prototype,"placeholderText",2),s([Tt()],_.prototype,"_value",2),s([Tt()],_.prototype,"_size",2),s([ne({type:String,attribute:"class"})],_.prototype,"classNames",2),s([f("classNames")],_.prototype,"handleclassNamesChange",1),_=s([Ar("qti-text-entry-interaction")],_);import{css as wr,html as Lr}from"lit";import{ifDefined as Fe}from"lit/directives/if-defined.js";import{ref as Sr,createRef as Mr}from"lit/directives/ref.js";import{customElement as Vr,property as ae,state as Nr}from"lit/decorators.js";var A=class extends m{constructor(){super(...arguments);this.textareaRef=Mr();this._value=""}handleclassNamesChange(e,t){this.classNames.split(" ").forEach(o=>{if(o.startsWith("qti-height-lines")){let a=o.replace("qti-height-lines-","");this.textareaRef&&(this.textareaRef.value.rows=parseInt(a))}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[wr`
60
60
  /* PK: display host as block, else design will be collapsed */
61
61
  :host {
62
62
  display: block;
@@ -66,38 +66,38 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
66
66
  height: 100%;
67
67
  border: 0;
68
68
  }
69
- `]}render(){return wr`<textarea
69
+ `]}render(){return Lr`<textarea
70
70
  part="textarea"
71
- ${Tr(this.textareaRef)}
71
+ ${Sr(this.textareaRef)}
72
72
  spellcheck="false"
73
73
  autocomplete="off"
74
74
  @keydown="${e=>e.stopImmediatePropagation()}"
75
75
  @keyup="${this.textChanged}"
76
76
  @change="${this.textChanged}"
77
- placeholder="${Ie(this.placeholderText?this.placeholderText:void 0)}"
78
- maxlength="${Ie(this.expectedLength?this.expectedLength:void 0)}"
79
- pattern="${Ie(this.patternMask?this.patternMask:void 0)}"
77
+ placeholder="${Fe(this.placeholderText?this.placeholderText:void 0)}"
78
+ maxlength="${Fe(this.expectedLength?this.expectedLength:void 0)}"
79
+ pattern="${Fe(this.patternMask?this.patternMask:void 0)}"
80
80
  ?disabled="${this.disabled}"
81
81
  ?readonly="${this.readonly}"
82
82
  .value=${this._value}
83
- ></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([ne({type:Number,attribute:"expected-length"})],w.prototype,"expectedLength",2),s([ne({type:String,attribute:"pattern-mask"})],w.prototype,"patternMask",2),s([ne({type:String,attribute:"placeholder-text"})],w.prototype,"placeholderText",2),s([Sr()],w.prototype,"_value",2),s([ne({type:String,attribute:"class"})],w.prototype,"classNames",2),s([f("classNames",{waitUntilFirstUpdate:!0})],w.prototype,"handleclassNamesChange",1),w=s([Lr("qti-extended-text-interaction")],w);import{html as Mr}from"lit";import{property as wt}from"lit/decorators.js";var v=class extends m{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([wt({type:Number,attribute:"min-choices"})],v.prototype,"minChoices",2),s([wt({type:Number,attribute:"max-choices"})],v.prototype,"maxChoices",2),s([f("disabled",{waitUntilFirstUpdate:!0})],v.prototype,"_handleDisabledChange",2),s([f("readonly",{waitUntilFirstUpdate:!0})],v.prototype,"_handleReadonlyChange",2),s([f("maxChoices",{waitUntilFirstUpdate:!0})],v.prototype,"_handleMaxChoicesChange",2);var Fe=class extends v{constructor(){super(...arguments);this.render=()=>Mr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};customElements.define("qti-hottext-interaction",Fe);import{css as Nr,html as Tt}from"lit";var ae=class extends m{constructor(){super();this.options=[];this.addEventListener(Ct.ON_DROPDOWN_SELECTED,this.choiceSelected);let e=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:"select",value:"",selected:!1},...e.map(t=>({textContent:t.innerHTML,value:t.getAttribute("identifier"),selected:!1}))]}static get properties(){return H(C({},m.properties),{options:{type:Array,value:[],attribute:!1}})}connectedCallback(){super.connectedCallback()}static get styles(){return[Nr`
83
+ ></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([ae({type:Number,attribute:"expected-length"})],A.prototype,"expectedLength",2),s([ae({type:String,attribute:"pattern-mask"})],A.prototype,"patternMask",2),s([ae({type:String,attribute:"placeholder-text"})],A.prototype,"placeholderText",2),s([Nr()],A.prototype,"_value",2),s([ae({type:String,attribute:"class"})],A.prototype,"classNames",2),s([f("classNames",{waitUntilFirstUpdate:!0})],A.prototype,"handleclassNamesChange",1),A=s([Vr("qti-extended-text-interaction")],A);import{html as Dr}from"lit";import{property as wt}from"lit/decorators.js";var v=class extends m{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([wt({type:Number,attribute:"min-choices"})],v.prototype,"minChoices",2),s([wt({type:Number,attribute:"max-choices"})],v.prototype,"maxChoices",2),s([f("disabled",{waitUntilFirstUpdate:!0})],v.prototype,"_handleDisabledChange",2),s([f("readonly",{waitUntilFirstUpdate:!0})],v.prototype,"_handleReadonlyChange",2),s([f("maxChoices",{waitUntilFirstUpdate:!0})],v.prototype,"_handleMaxChoicesChange",2);var Xe=class extends v{constructor(){super(...arguments);this.render=()=>Dr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};customElements.define("qti-hottext-interaction",Xe);import{css as Hr,html as Lt}from"lit";var le=class extends m{constructor(){super();this.options=[];this.addEventListener(kt.ON_DROPDOWN_SELECTED,this.choiceSelected);let e=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:"select",value:"",selected:!1},...e.map(t=>({textContent:t.innerHTML,value:t.getAttribute("identifier"),selected:!1}))]}static get properties(){return D(C({},m.properties),{options:{type:Array,value:[],attribute:!1}})}connectedCallback(){super.connectedCallback()}static get styles(){return[Hr`
84
84
  :host {
85
85
  display: inline-block;
86
86
  }
87
- `]}render(){return Tt` <select
87
+ `]}render(){return Lt` <select
88
88
  part="select"
89
89
  @change="${this.choiceSelected}"
90
90
  ?disabled="${this.disabled}"
91
91
  ?readonly="${this.readonly}"
92
92
  >
93
- ${this.options.map(e=>Tt` <option value="${e.value}" ?selected="${e.selected}">${e.textContent}</option> `)}
94
- </select>`}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>H(C({},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=>H(C({},r),{selected:r.value===t})),this.saveResponse(t)}};ae.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"];customElements.define("qti-inline-choice-interaction",ae);import{customElement as Hr,property as Or}from"lit/decorators.js";import{html as Vr}from"lit";import{css as Dr}from"lit";var Rt=Dr`
93
+ ${this.options.map(e=>Lt` <option value="${e.value}" ?selected="${e.selected}">${e.textContent}</option> `)}
94
+ </select>`}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>D(C({},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=>D(C({},r),{selected:r.value===t})),this.saveResponse(t)}};le.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"];customElements.define("qti-inline-choice-interaction",le);import{customElement as $r,property as Pr}from"lit/decorators.js";import{html as Ir}from"lit";import{css as Or}from"lit";var St=Or`
95
95
  :host {
96
96
  display: flex;
97
97
  flex-direction: column;
98
98
  align-items: flex-start;
99
99
  }
100
- `;var I=class extends v{constructor(){super(...arguments);this.render=()=>Vr` <slot name="prompt"></slot><slot></slot>`}};I.styles=Rt,s([Or({type:String})],I.prototype,"orientation",2),I=s([Hr("qti-choice-interaction")],I);import{customElement as $r}from"lit/decorators.js";import{html as Pr,LitElement as Ir}from"lit";var Lt=`<qti-response-processing>
100
+ `;var F=class extends v{constructor(){super(...arguments);this.render=()=>Ir` <slot name="prompt"></slot><slot></slot>`}};F.styles=St,s([Pr({type:String})],F.prototype,"orientation",2),F=s([$r("qti-choice-interaction")],F);import{customElement as Fr}from"lit/decorators.js";import{html as Xr,LitElement as Yr}from"lit";var Mt=`<qti-response-processing>
101
101
  <qti-response-condition>
102
102
  <qti-response-if>
103
103
  <qti-match>
@@ -114,7 +114,7 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
114
114
  </qti-set-outcome-value>
115
115
  </qti-response-else>
116
116
  </qti-response-condition>
117
- </qti-response-processing>`,St=`<qti-response-processing>
117
+ </qti-response-processing>`,Vt=`<qti-response-processing>
118
118
  <qti-response-condition>
119
119
  <qti-response-if>
120
120
  <qti-is-null>
@@ -130,7 +130,7 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
130
130
  </qti-set-outcome-value>
131
131
  </qti-response-else>
132
132
  </qti-response-condition>
133
- </qti-response-processing>`,Mt=`<qti-response-processing>
133
+ </qti-response-processing>`,Nt=`<qti-response-processing>
134
134
  <qti-response-condition>
135
135
  <qti-response-if>
136
136
  <qti-is-null>
@@ -146,15 +146,25 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
146
146
  </qti-set-outcome-value>
147
147
  </qti-response-else>
148
148
  </qti-response-condition>
149
- </qti-response-processing>`;var F=class extends Ir{render(){return Pr`<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(St));break}case"map_response_point":{this.appendChild(this.fragmentFromString(Mt));break}case"match_correct":this.appendChild(this.fragmentFromString(Lt));break}}let i=[...this.children];for(let e of i)e.process()}fragmentFromString(i){return document.createRange().createContextualFragment(i)}};F=s([$r("qti-response-processing")],F);import{customElement as Fr}from"lit/decorators.js";import{html as Xr,LitElement as Yr}from"lit";var S=class extends Yr{render(){return Xr``}process(){throw new Error("Not implemented")}};S=s([Fr("qti-rule")],S);import{html as Ur}from"lit";var Xe=class extends S{render(){return Ur`<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 Kr}from"lit";import{html as Br,LitElement as zr}from"lit";var j=class extends zr{static get properties(){return{debugCalculateResult:{type:Object}}}render(){return Br` <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 G=class extends j{render(){return Kr`${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",G);import{html as jr}from"lit";var Ue=class extends G{render(){return jr`${super.render()}`}};customElements.define("qti-response-else-if",Ue);import{LitElement as Gr,html as Wr}from"lit";var u=class extends Gr{constructor(){super(...arguments);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.getResponse(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)}render(){return Wr``}calculate(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};customElements.define("qti-expression",u);var Be=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",Be);import{html as Jr}from"lit";var T=class extends u{render(){return Jr``}calculate(){throw new Error("Not implemented")}};var ze=class extends T{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 Ke=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",Ke);var je=class extends T{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",je);import{html as Zr}from"lit";var Ge=class extends T{render(){return Zr``}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",Ge);import{state as Qr}from"lit/decorators.js";import{html as ei}from"lit";var le=class extends u{constructor(){super(...arguments);this.mult=0;this.render=()=>ei`<pre>${this.mult}</pre>`}calculate(){let t=this.getVariables().reduce((r,o)=>{if(o.baseType=="float"||o.baseType=="integer")try{return r*parseInt(o.value.toString())}catch(a){console.warn("can not convert to number")}else console.warn(`has another baseType ${o.baseType}`);return r},1);return this.mult=t,t}};s([Qr()],le.prototype,"mult",2);customElements.define("qti-product",le);import{html as ti}from"lit";var We=class extends T{render(){return ti``}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",We);import{property as ri}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 ce=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([ri({type:String})],ce.prototype,"toleranceMode",2);customElements.define("qti-equal",ce);import{property as ii}from"lit/decorators.js";var pe=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),a=parseFloat(r.value);if(!isNaN(o)&&!isNaN(a))return this.roundingMode==="significantFigures"?o.toPrecision(this.figures)===a.toPrecision(this.figures):Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(a*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${o}, ${a}`);break}default:{console.error("values other than float and int cannot be used in equalRounded operator.");break}}return!1}return console.error("unexpected number of children in qti-equal-rounded"),null}};s([ii({type:String})],pe.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",pe);import{property as si}from"lit/decorators.js";var de=class extends u{constructor(){super(...arguments);this.baseType="string"}calculate(){return this.textContent}};s([si({type:String})],de.prototype,"baseType",2);customElements.define("qti-base-value",de);var Je=class extends u{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",Je);import{html as oi}from"lit";var Ze=class extends u{render(){return oi``}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",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);import{html as ni}from"lit";var et=class extends u{render(){return ni`${super.render()}`}calculate(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",et);import{property as ai}from"lit/decorators.js";var ue=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 a of r){let l=t.mapEntries.find(c=>R.compareSingleValues(c.mapKey,a,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([ai({type:String})],ue.prototype,"identifier",2);customElements.define("qti-map-response",ue);var tt=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(t.cardinality==="single")return Array.isArray(e.value)||Array.isArray(t.value)?(console.error("unexpected cardinality in qti match"),!1):R.compareSingleValues(e.value.toString(),t.value.toString(),t.baseType);{if(!Array.isArray(e.value)||!Array.isArray(t.value))return console.error("unexpected cardinality in qti match"),!1;if(e.value.length!==t.value.length)return!1;let r=0;for(let o of t.value){if(t.cardinality==="ordered"){let a=e[r];if(!R.compareSingleValues(o,a,t.baseType))return!1}else{let a=null;for(let l of e.value)if(R.compareSingleValues(o,l,t.baseType)){a=l;break}if(a!==null)e.value.splice(e.value.indexOf(a),1);else return!1}r++}return!0}}return console.error("unexpected number of children in match"),null}};customElements.define("qti-match",tt);import{html as li}from"lit";var rt=class extends u{render(){return li``}calculate(){let i=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariableValue(i)}};customElements.define("qti-variable",rt);var it=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",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!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return i}};customElements.define("qti-ordered",st);import{LitElement as ci,html as pi}from"lit";import{property as di}from"lit/decorators.js";var me=class extends ci{constructor(){super();this.value="";this.closest("qti-assessment-item").addEventListener("qti-outcome-changed",()=>{this.value=this.calculate()})}render(){return pi`${this.value}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.getAttribute("identifier");return e.getVariableValue(t)}};s([di({type:String})],me.prototype,"value",2);customElements.define("qti-printed-variable",me);import{property as ot}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([ot({attribute:"default-value",type:Number})],X.prototype,"defaultValue",2),s([ot({attribute:"lower-bound",type:Number})],X.prototype,"lowerBound",2),s([ot({attribute:"upper-bound",type:Number})],X.prototype,"upperBound",2);customElements.define("qti-mapping",X);import{LitElement as mi,html as Nt}from"lit";var nt=class extends mi{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),h=d.map(b=>b.getAttribute("key"));h.length>0&&!h.find(b=>!Number.isInteger(+b))?c[p]=d.map(b=>a(b)):c[p]=l.textContent}return c},a=l=>{if(l){let c={};for(let p of l.children)c=C(C({},c),o(p));return c}};for(let l of t)return l.getAttribute("key")||(r=C(C({},r),a(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 Nt`<slot></slot>${this._errorMessage&&Nt`<div style="color:red">
149
+ </qti-response-processing>`;var X=class extends Yr{render(){return Xr`<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(Vt));break}case"map_response_point":{this.appendChild(this.fragmentFromString(Nt));break}case"match_correct":this.appendChild(this.fragmentFromString(Mt));break}}let i=[...this.children];for(let e of i)e.process()}fragmentFromString(i){return document.createRange().createContextualFragment(i)}};X=s([Fr("qti-response-processing")],X);import{customElement as Ur}from"lit/decorators.js";import{html as Br,LitElement as zr}from"lit";var S=class extends zr{render(){return Br``}process(){throw new Error("Not implemented")}};S=s([Ur("qti-rule")],S);import{html as jr}from"lit";var Ye=class extends S{render(){return jr`<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 Ue=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",Ue);import{html as Gr}from"lit";import{html as Kr,LitElement as Wr}from"lit";var W=class extends Wr{static get properties(){return{debugCalculateResult:{type:Object}}}render(){return Kr` <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",W);var G=class extends W{render(){return Gr`${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",G);import{html as Jr}from"lit";var Be=class extends G{render(){return Jr`${super.render()}`}};customElements.define("qti-response-else-if",Be);import{LitElement as Zr,css as Qr,html as Dt}from"lit";import{state as ei}from"lit/decorators.js";var u=class extends Zr{constructor(){super(...arguments);this._error=[];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 Dt`${this._error.map(e=>Dt`<div role="alert">${e}</div>`)}`}calculate(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};u.styles=Qr`
150
+ [role='alert'] {
151
+ border: 1px solid red;
152
+ background: pink;
153
+ color: red;
154
+ padding: 0.5rem 0.25rem;
155
+ font-size: small;
156
+ border-radius: 5px;
157
+ margin-bottom: 3px;
158
+ }
159
+ `,s([ei()],u.prototype,"error",1);customElements.define("qti-expression",u);var ze=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",ze);import{html as ti}from"lit";var T=class extends u{render(){return ti``}calculate(){throw new Error("Not implemented")}};var je=class extends T{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 Ke=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",Ke);var We=class extends T{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",We);import{html as ri}from"lit";var Ge=class extends T{render(){return ri``}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",Ge);import{state as ii}from"lit/decorators.js";import{html as si}from"lit";var ce=class extends u{constructor(){super(...arguments);this.mult=0;this.render=()=>si`<pre>${this.mult}</pre>`}calculate(){let t=this.getVariables().reduce((r,o)=>{if(o.baseType=="float"||o.baseType=="integer")try{return r*parseInt(o.value.toString())}catch(a){console.warn("can not convert to number")}else console.warn(`has another baseType ${o.baseType}`);return r},1);return this.mult=t,t}};s([ii()],ce.prototype,"mult",2);customElements.define("qti-product",ce);import{html as oi}from"lit";var Je=class extends T{render(){return oi``}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",Je);import{property as ni}from"lit/decorators.js";var w=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 pe=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):w.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};s([ni({type:String})],pe.prototype,"toleranceMode",2);customElements.define("qti-equal",pe);import{property as ai}from"lit/decorators.js";var de=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),a=parseFloat(r.value);if(!isNaN(o)&&!isNaN(a))return this.roundingMode==="significantFigures"?o.toPrecision(this.figures)===a.toPrecision(this.figures):Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(a*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${o}, ${a}`);break}default:{console.error("values other than float and int cannot be used in equalRounded operator.");break}}return!1}return console.error("unexpected number of children in qti-equal-rounded"),null}};s([ai({type:String})],de.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",de);import{property as li}from"lit/decorators.js";var ue=class extends u{constructor(){super(...arguments);this.baseType="string"}calculate(){return this.textContent}};s([li({type:String,attribute:"base-type"})],ue.prototype,"baseType",2);customElements.define("qti-base-value",ue);var Ze=class extends u{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",Ze);import{html as ci}from"lit";var Qe=class extends u{render(){return ci``}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",Qe);var et=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",et);import{html as pi}from"lit";var tt=class extends u{render(){return pi`${super.render()}`}calculate(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",tt);import{property as di}from"lit/decorators.js";var me=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 a of r){let l=t.mapEntries.find(c=>w.compareSingleValues(c.mapKey,a,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([di({type:String})],me.prototype,"identifier",2);customElements.define("qti-map-response",me);var rt=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(t.cardinality==="single")return Array.isArray(e.value)||Array.isArray(t.value)?(console.error("unexpected cardinality in qti match"),!1):w.compareSingleValues(e.value.toString(),t.value.toString(),t.baseType);{if(!Array.isArray(e.value)||!Array.isArray(t.value))return console.error("unexpected cardinality in qti match"),!1;if(e.value.length!==t.value.length)return!1;let r=0;for(let o of t.value){if(t.cardinality==="ordered"){let a=e[r];if(!w.compareSingleValues(o,a,t.baseType))return!1}else{let a=null;for(let l of e.value)if(w.compareSingleValues(o,l,t.baseType)){a=l;break}if(a!==null)e.value.splice(e.value.indexOf(a),1);else return!1}r++}return!0}}return console.error("unexpected number of children in match"),null}};customElements.define("qti-match",rt);import{html as ui}from"lit";var it=class extends u{render(){return ui``}calculate(){let i=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariable(i).value}};customElements.define("qti-variable",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);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!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return i}};customElements.define("qti-ordered",ot);import{LitElement as mi,html as hi}from"lit";import{property as fi}from"lit/decorators.js";var he=class extends mi{constructor(){super();this.value="";this.closest("qti-assessment-item").addEventListener("qti-outcome-changed",()=>{this.value=this.calculate()})}render(){return hi`${this.value}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.getAttribute("identifier");return e.getVariable(t).value}};s([fi({type:String})],he.prototype,"value",2);customElements.define("qti-printed-variable",he);var nt=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",nt);import{property as at}from"lit/decorators.js";import{LitElement as bi}from"lit";var Y=class extends bi{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([at({attribute:"default-value",type:Number})],Y.prototype,"defaultValue",2),s([at({attribute:"lower-bound",type:Number})],Y.prototype,"lowerBound",2),s([at({attribute:"upper-bound",type:Number})],Y.prototype,"upperBound",2);customElements.define("qti-mapping",Y);import{LitElement as gi,html as Ht}from"lit";var lt=class extends gi{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),h=d.map(g=>g.getAttribute("key"));h.length>0&&!h.find(g=>!Number.isInteger(+g))?c[p]=d.map(g=>a(g)):c[p]=l.textContent}return c},a=l=>{if(l){let c={};for(let p of l.children)c=C(C({},c),o(p));return c}};for(let l of t)return l.getAttribute("key")||(r=C(C({},r),a(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 Ht`<slot></slot>${this._errorMessage&&Ht`<div style="color:red">
150
160
  <h1>Error</h1>
151
161
  ${this._errorMessage}
152
- </div>`}`}};customElements.define("qti-portable-custom-interaction",nt);import{LitElement as fi,css as gi,html as Ot}from"lit";var he=class n{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 n._instance?n._instance:(n._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._getPositionFromEvent(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._getPositionFromEvent(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,t=i.composedPath().find(r=>{if(r.nodeType===1&&r.nodeName!=="SLOT"&&r.hasAttribute("dropzone"))return r});if(t){let r=t.getRootNode(),o=this._getPoint(i);e=r.elementFromPoint(o.x,o.y)}return e}_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}_getPositionFromEvent(i){let e;if(i.type=="touchstart"||i.type=="touchmove"||i.type=="touchend"||i.type=="touchcancel"){let t=typeof i.originalEvent=="undefined"?i:i.originalEvent,r=t.touches[0]||t.changedTouches[0];e={x:r.pageX,y:r.pageY}}else(i.type=="mousedown"||i.type=="mouseup"||i.type=="mousemove"||i.type=="mouseover"||i.type=="mouseout"||i.type=="mouseenter"||i.type=="mouseleave")&&(e={x:i.clientX,y:i.clientY});return e}};import{property as hi}from"lit/decorators.js";var Dt=(n,i,e)=>{class t extends n{constructor(){super(...arguments);this.disabled=!1}firstUpdated(a){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(a);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.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(a){a.addEventListener("dragover",this.dragoverHandler),a.addEventListener("drop",this.dropHandler)}removeHandler(a){a.removeEventListener("dragover",this.dragoverHandler),a.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var a;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(a=this.observer)==null||a.disconnect())}dragoverHandler(a){return a.preventDefault(),a.currentTarget.setAttribute("active",""),a.dataTransfer.dropEffect="move",!1}dropHandler(a){a.preventDefault();let l=a.currentTarget,c=this.querySelector(`[identifier=${a.dataTransfer.getData("text")}`),p=c||this.shadowRoot.querySelector(`[identifier=${a.dataTransfer.getData("text")}`);return l?p.parentElement.getAttribute("identifier")!==l.getAttribute("identifier")&&l.appendChild(p):console.error(`cannot find droppable, target: ${a.target?JSON.stringify(a.target):"null"}`),l.removeAttribute("active"),!1}dragleaveHandler(a){return a.preventDefault(),a.currentTarget.removeAttribute("active"),!1}}return s([hi({type:Boolean,reflect:!0})],t.prototype,"disabled",2),t};var Ht=(n,i,e)=>{class t extends n{}return t};import{property as Y}from"lit/decorators.js";var L=(n,i,e,t)=>{class r extends Ht(Dt(n,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",h=>{h.dataTransfer.setData("text",h.currentTarget.getAttribute("identifier")),d.setAttribute("dragging","")}),d.addEventListener("dragend",h=>{if(h.preventDefault(),d.removeAttribute("over"),d.removeAttribute("dragging"),h.dataTransfer.dropEffect==="none"&&this.configuration.dragCanBePlacedBack){let q=h.currentTarget,b=this.draggables.get(q),Se=b.index<b.parent.children.length?b.index:b.parent.children.length-1,g=b.parent,Me=b.parent.children[Se];g.insertBefore(q,Me),this.saveResponse(),this.checkMaxMatchAssociations()}h.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 he,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,h=c.index<d.length?c.index:d.length;c.parent.insertBefore(p,d[h])}),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 h=this.droppables.find(q=>q.getAttribute("identifier")===p);d.forEach(q=>{let b=this.querySelector(`[identifier=${q}]`);h?b?(h.appendChild(b),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${q}`):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(h=>h.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([mt(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([f("configuration")],r.prototype,"handleDragOptionsChanged",1),s([Y({type:Boolean,reflect:!0})],r.prototype,"disabled",2),s([f("disabled",{waitUntilFirstUpdate:!0})],r.prototype,"handleDisabledChange",1),s([Y({type:Boolean,reflect:!0})],r.prototype,"readonly",2),s([f("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 bi}from"lit/decorators.js";var W=class extends L(fi,"qti-simple-associable-choice",!0,".dl"){render(){return Ot` <slot name="prompt"></slot>
162
+ </div>`}`}};customElements.define("qti-portable-custom-interaction",lt);import{LitElement as yi,css as xi,html as Pt}from"lit";var fe=class n{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 n._instance?n._instance:(n._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._getPositionFromEvent(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._getPositionFromEvent(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,t=i.composedPath().find(r=>{if(r.nodeType===1&&r.nodeName!=="SLOT"&&r.hasAttribute("dropzone"))return r});if(t){let r=t.getRootNode(),o=this._getPoint(i);e=r.elementFromPoint(o.x,o.y)}return e}_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}_getPositionFromEvent(i){let e;if(i.type=="touchstart"||i.type=="touchmove"||i.type=="touchend"||i.type=="touchcancel"){let t=typeof i.originalEvent=="undefined"?i:i.originalEvent,r=t.touches[0]||t.changedTouches[0];e={x:r.pageX,y:r.pageY}}else(i.type=="mousedown"||i.type=="mouseup"||i.type=="mousemove"||i.type=="mouseover"||i.type=="mouseout"||i.type=="mouseenter"||i.type=="mouseleave")&&(e={x:i.clientX,y:i.clientY});return e}};import{property as vi}from"lit/decorators.js";var Ot=(n,i,e)=>{class t extends n{constructor(){super(...arguments);this.disabled=!1}firstUpdated(a){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(a);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.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(a){a.addEventListener("dragover",this.dragoverHandler),a.addEventListener("drop",this.dropHandler)}removeHandler(a){a.removeEventListener("dragover",this.dragoverHandler),a.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var a;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(a=this.observer)==null||a.disconnect())}dragoverHandler(a){return a.preventDefault(),a.currentTarget.setAttribute("active",""),a.dataTransfer.dropEffect="move",!1}dropHandler(a){a.preventDefault();let l=a.currentTarget,c=this.querySelector(`[identifier=${a.dataTransfer.getData("text")}`),p=c||this.shadowRoot.querySelector(`[identifier=${a.dataTransfer.getData("text")}`);return l?p.parentElement.getAttribute("identifier")!==l.getAttribute("identifier")&&l.appendChild(p):console.error(`cannot find droppable, target: ${a.target?JSON.stringify(a.target):"null"}`),l.removeAttribute("active"),!1}dragleaveHandler(a){return a.preventDefault(),a.currentTarget.removeAttribute("active"),!1}}return s([vi({type:Boolean,reflect:!0})],t.prototype,"disabled",2),t};var $t=(n,i,e)=>{class t extends n{}return t};import{property as U}from"lit/decorators.js";var L=(n,i,e,t)=>{class r extends $t(Ot(n,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",h=>{h.dataTransfer.setData("text",h.currentTarget.getAttribute("identifier")),d.setAttribute("dragging","")}),d.addEventListener("dragend",h=>{if(h.preventDefault(),d.removeAttribute("over"),d.removeAttribute("dragging"),h.dataTransfer.dropEffect==="none"&&this.configuration.dragCanBePlacedBack){let q=h.currentTarget,g=this.draggables.get(q),Me=g.index<g.parent.children.length?g.index:g.parent.children.length-1,b=g.parent,Ve=g.parent.children[Me];b.insertBefore(q,Ve),this.saveResponse(),this.checkMaxMatchAssociations()}h.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 fe,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,h=c.index<d.length?c.index:d.length;c.parent.insertBefore(p,d[h])}),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 h=this.droppables.find(q=>q.getAttribute("identifier")===p);d.forEach(q=>{let g=this.querySelector(`[identifier=${q}]`);h?g?(h.appendChild(g),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${q}`):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(h=>h.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([ft(i)],r.prototype,"reInitDragAndDrop",1),s([U({type:String,attribute:"response-identifier"})],r.prototype,"responseIdentifier",2),s([U({attribute:!1,type:Object})],r.prototype,"configuration",2),s([f("configuration")],r.prototype,"handleDragOptionsChanged",1),s([U({type:Boolean,reflect:!0})],r.prototype,"disabled",2),s([f("disabled",{waitUntilFirstUpdate:!0})],r.prototype,"handleDisabledChange",1),s([U({type:Boolean,reflect:!0})],r.prototype,"readonly",2),s([f("readonly",{waitUntilFirstUpdate:!0})],r.prototype,"handleReadonlyChange",1),s([U({type:Number,reflect:!0,attribute:"min-associations"})],r.prototype,"minAssociations",2),s([U({type:Number,reflect:!0,attribute:"max-associations"})],r.prototype,"maxAssociations",2),r};import{state as Ei}from"lit/decorators.js";var J=class extends L(yi,"qti-simple-associable-choice",!0,".dl"){render(){return Pt` <slot name="prompt"></slot>
153
163
  <slot name="qti-simple-associable-choice"></slot>
154
- ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,t)=>Ot`<div part="associables-container">
164
+ ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,t)=>Pt`<div part="associables-container">
155
165
  <div name="left${t}" part="drop-list" class="dl" identifier="droplist${t}_left"></div>
156
166
  <div name="right${t}" part="drop-list" class="dl" identifier="droplist${t}_right"></div>
157
- </div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};W.styles=gi`
167
+ </div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};J.styles=xi`
158
168
  :host {
159
169
  display: block; /* necessary to calculate scaling position */
160
170
  }
@@ -163,8 +173,8 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
163
173
  flex-wrap: wrap;
164
174
  gap: 0.5rem;
165
175
  }
166
- `,s([bi()],W.prototype,"_childrenMap",2);customElements.define("qti-associate-interaction",W);import{css as vi,html as yi,LitElement as Ei}from"lit";var fe=class extends L(Ei,"qti-gap-text",!1,"qti-gap"){render(){return yi` <slot part="drags" name="qti-gap-text"></slot>
167
- <slot part="drops"></slot>`}};fe.styles=[vi`
176
+ `,s([Ei()],J.prototype,"_childrenMap",2);customElements.define("qti-associate-interaction",J);import{css as qi,html as Ci,LitElement as _i}from"lit";var be=class extends L(_i,"qti-gap-text",!1,"qti-gap"){render(){return Ci` <slot part="drags" name="qti-gap-text"></slot>
177
+ <slot part="drops"></slot>`}};be.styles=[qi`
168
178
  :host {
169
179
  display: flex;
170
180
  align-items: flex-start;
@@ -187,14 +197,14 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
187
197
  align-items: flex-start;
188
198
  flex: 1;
189
199
  }
190
- `];customElements.define("qti-gap-match-interaction",fe);import{css as xi,svg as Vt,html as qi}from"lit";function U(n,i,e,t){switch(n){case"circle":{let[r,o,a]=i,l=r/e.width*100,c=o/e.height*100,p=a/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,a,l]=i,c=r/e.width*100,p=o/e.height*100,d=a/e.width*100,h=l/e.height*100;t.style.left=c+"%",t.style.top=p+"%",t.style.width=d-c+"%",t.style.height=h-p+"%"}break;case"poly":{let r=i.reduce((g,Me,dt,Yt)=>{if(dt%2===1){let Ut=g.pop();g[g.length]={x:Ut,y:Yt[dt]}}else g.push(Me);return g},[]),o=Math.min(...r.map(g=>g.x)),a=Math.max(...r.map(g=>g.x)),l=Math.min(...r.map(g=>g.y)),c=Math.max(...r.map(g=>g.y)),p=o/e.width*100,d=l/e.height*100,h=a/e.width*100,q=c/e.height*100;t.style.left=o/e.width*100+"%",t.style.top=l/e.height*100+"%",t.style.width=h-p+"%",t.style.height=q-d+"%";let Se=r.map(g=>({x:(g.x-o)/(a-o)*100,y:(g.y-l)/(c-l)*100})).map(g=>Math.round(g.x)+"% "+Math.round(g.y)+"%").join(",");t.style.clipPath=`polygon(${Se})`}break;default:break}}import{query as Ci,queryAssignedElements as _i,state as at}from"lit/decorators.js";import{repeat as ki}from"lit/directives/repeat.js";import{ifDefined as $t}from"lit/directives/if-defined.js";var M=class extends m{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 qi`<slot name="prompt"></slot>
200
+ `];customElements.define("qti-gap-match-interaction",be);import{css as ki,svg as It,html as Ri}from"lit";function B(n,i,e,t){switch(n){case"circle":{let[r,o,a]=i,l=r/e.width*100,c=o/e.height*100,p=a/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,a,l]=i,c=r/e.width*100,p=o/e.height*100,d=a/e.width*100,h=l/e.height*100;t.style.left=c+"%",t.style.top=p+"%",t.style.width=d-c+"%",t.style.height=h-p+"%"}break;case"poly":{let r=i.reduce((b,Ve,mt,zt)=>{if(mt%2===1){let jt=b.pop();b[b.length]={x:jt,y:zt[mt]}}else b.push(Ve);return b},[]),o=Math.min(...r.map(b=>b.x)),a=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,h=a/e.width*100,q=c/e.height*100;t.style.left=o/e.width*100+"%",t.style.top=l/e.height*100+"%",t.style.width=h-p+"%",t.style.height=q-d+"%";let Me=r.map(b=>({x:(b.x-o)/(a-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 ct}from"lit/decorators.js";import{repeat as wi}from"lit/directives/repeat.js";import{ifDefined as Ft}from"lit/directives/if-defined.js";var M=class extends m{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>
191
201
  <line-container>
192
202
  <svg
193
- width=${$t((e=this.grImage[0])==null?void 0:e.width)}
194
- height=${$t((t=this.grImage[0])==null?void 0:t.height)}
203
+ width=${Ft((e=this.grImage[0])==null?void 0:e.width)}
204
+ height=${Ft((t=this.grImage[0])==null?void 0:t.height)}
195
205
  viewbox="0 0 ${(r=this.grImage[0])==null?void 0:r.width} ${(o=this.grImage[0])==null?void 0:o.height}"
196
206
  >
197
- ${ki(this._lines,a=>a,(a,l)=>Vt`
207
+ ${wi(this._lines,a=>a,(a,l)=>It`
198
208
  <line
199
209
  part="line"
200
210
  x1=${parseInt(this.querySelector("[identifier="+a.split(" ")[0]+"]").style.left)}
@@ -206,7 +216,7 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
206
216
  @click=${c=>{c.stopPropagation(),this._lines=this._lines.filter((p,d)=>d!==l),this.saveResponse(this._lines)}}
207
217
  />
208
218
  `)}
209
- ${this.startPoint&&Vt`<line
219
+ ${this.startPoint&&It`<line
210
220
  part="point"
211
221
  x1=${this.startCoord.x}
212
222
  y1=${this.startCoord.y}
@@ -217,7 +227,7 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
217
227
  />`}
218
228
  </svg>
219
229
  <slot></slot>
220
- </line-container>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),a=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));U(a,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=[xi`
230
+ </line-container>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),a=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));B(a,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=[ki`
221
231
  slot:not([name='prompt']) {
222
232
  // position: relative; /* qti-hotspot-choice relative to the slot */
223
233
  display: block;
@@ -240,8 +250,8 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
240
250
  top: 0px;
241
251
  left: 0px;
242
252
  }
243
- `],s([at()],M.prototype,"_lines",2),s([at()],M.prototype,"startCoord",2),s([at()],M.prototype,"mouseCoord",2),s([Ci("svg")],M.prototype,"svgContainer",2),s([_i({selector:"img"})],M.prototype,"grImage",2);customElements.define("qti-graphic-associate-interaction",M);import{css as Ai,html as wi,LitElement as Ti}from"lit";var ge=class extends L(Ti,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return wi` <slot></slot>
244
- <slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),a=r.split(",").map(l=>parseInt(l));switch(o){case"circle":{let[l,c,p]=a;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]=a;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)}};ge.styles=Ai`
253
+ `],s([ct()],M.prototype,"_lines",2),s([ct()],M.prototype,"startCoord",2),s([ct()],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 Li,html as Si,LitElement as Mi}from"lit";var ge=class extends L(Mi,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return Si` <slot></slot>
254
+ <slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),a=r.split(",").map(l=>parseInt(l));switch(o){case"circle":{let[l,c,p]=a;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]=a;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)}};ge.styles=Li`
245
255
  :host {
246
256
  display: inline-block;
247
257
  position: relative;
@@ -250,12 +260,12 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
250
260
  display: flex;
251
261
  gap: 1rem;
252
262
  }
253
- `;customElements.define("qti-graphic-gap-match-interaction",ge);import{css as Ri,html as Li}from"lit";var be=class extends v{render(){return Li`
263
+ `;customElements.define("qti-graphic-gap-match-interaction",ge);import{css as Vi,html as Ni}from"lit";var ve=class extends v{render(){return Ni`
254
264
  <slot name="prompt"></slot>
255
265
  <!-- slot for the prompt -->
256
266
  <slot></slot>
257
267
  <!-- slot for the image and hotspots -->
258
- `}setHotspotOrder(e){let{identifier:t}=e.detail,r=this._choiceElements.find(a=>a.getAttribute("identifier")===t),o=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(a=>a.order>0).length>=o){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(a=>!!a.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(a=>(a.order>a.order&&a.order--,a)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),a=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));U(a,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)}};be.styles=[Ri`
268
+ `}setHotspotOrder(e){let{identifier:t}=e.detail,r=this._choiceElements.find(a=>a.getAttribute("identifier")===t),o=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(a=>a.order>0).length>=o){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(a=>!!a.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(a=>(a.order>a.order&&a.order--,a)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),a=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));B(a,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)}};ve.styles=[Vi`
259
269
  slot:not([name='prompt']) {
260
270
  position: relative; /* qti-hotspot-choice relative to the slot */
261
271
  display: block;
@@ -266,12 +276,12 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
266
276
  pointer-events: none;
267
277
  user-select: none;
268
278
  }
269
- `];customElements.define("qti-graphic-order-interaction",be);import{css as Si,html as Mi}from"lit";var ve=class extends v{render(){return Mi`
279
+ `];customElements.define("qti-graphic-order-interaction",ve);import{css as Di,html as Hi}from"lit";var ye=class extends v{render(){return Hi`
270
280
  <slot name="prompt"></slot>
271
281
  <!-- slot for the prompt -->
272
282
  <slot></slot>
273
283
  <!-- slot for the image and hotspots -->
274
- `}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),a=r.split(",").map(l=>parseInt(l));U(o,a,e,t)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};ve.styles=[Si`
284
+ `}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),a=r.split(",").map(l=>parseInt(l));B(o,a,e,t)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};ye.styles=[Di`
275
285
  slot:not([name='prompt']) {
276
286
  position: relative; /* qti-hotspot-choice relative to the slot */
277
287
  display: block;
@@ -283,26 +293,26 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
283
293
  user-select: none;
284
294
  /* width:100%; */
285
295
  }
286
- `];customElements.define("qti-hotspot-interaction",ve);import{html as J,LitElement as Hi}from"lit";import{html as Ni,LitElement as Di}from"lit";var lt=class extends Di{connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return Ni`
296
+ `];customElements.define("qti-hotspot-interaction",ye);import{html as Z,LitElement as Pi}from"lit";import{html as Oi,LitElement as $i}from"lit";var pt=class extends $i{connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return Oi`
287
297
  <slot></slot>
288
298
  <slot name="qti-simple-associable-choice"></slot>
289
- `}};customElements.define("qti-simple-associable-choice",lt);var ye=class extends L(Hi,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){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"))}render(){return this.classList.contains("qti-match-tabular")?J`<table>
299
+ `}};customElements.define("qti-simple-associable-choice",pt);var xe=class extends L(Pi,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){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"))}render(){return this.classList.contains("qti-match-tabular")?Z`<table>
290
300
  <tr>
291
301
  <td><slot name="prompt"></slot></td>
292
- ${this.cols.map((e,t)=>J`<th>${e.innerHTML}</th>`)}
302
+ ${this.cols.map((e,t)=>Z`<th>${e.innerHTML}</th>`)}
293
303
  </tr>
294
- ${this.rows.map(e=>J`<tr>
304
+ ${this.rows.map(e=>Z`<tr>
295
305
  <td>${e.innerHTML}</td>
296
- ${this.cols.map((t,r)=>J`<td><input type="checkbox" /></td>`)}
306
+ ${this.cols.map((t,r)=>Z`<td><input type="checkbox" /></td>`)}
297
307
  </tr>`)}
298
- </table>`:J`<slot name="prompt"></slot> <slot></slot>`}};ye.styles=[];customElements.define("qti-match-interaction",ye);import{css as Oi,html as Vi}from"lit";var Ee=class extends m{constructor(){super()}reset(){}validate(){return!0}set response(e){}static get properties(){return H(C({},m.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return Vi` <slot name="prompt"></slot>
299
- <slot></slot>`}connectedCallback(){super.connectedCallback()}};Ee.styles=[Oi``];customElements.define("qti-media-interaction",Ee);import{css as $i,html as Pt,LitElement as Pi}from"lit";import{property as Ii}from"lit/decorators.js";var B=class extends L(Pi,"qti-simple-choice",!0,"drop-list"){render(){return Pt` <slot name="prompt"> </slot>
308
+ </table>`:Z`<slot name="prompt"></slot> <slot></slot>`}};xe.styles=[];customElements.define("qti-match-interaction",xe);import{css as Ii,html as Fi}from"lit";var Ee=class extends m{constructor(){super()}reset(){}validate(){return!0}set response(e){}static get properties(){return D(C({},m.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return Fi` <slot name="prompt"></slot>
309
+ <slot></slot>`}connectedCallback(){super.connectedCallback()}};Ee.styles=[Ii``];customElements.define("qti-media-interaction",Ee);import{css as Xi,html as Xt,LitElement as Yi}from"lit";import{property as Ui}from"lit/decorators.js";var z=class extends L(Yi,"qti-simple-choice",!0,"drop-list"){render(){return Xt` <slot name="prompt"> </slot>
300
310
  <div part="container">
301
311
  <slot part="drags"> </slot>
302
312
  <div part="drops">
303
- ${Array.from(this.querySelectorAll("qti-simple-choice")).map((e,t)=>Pt`<drop-list part="drop-list" identifier="droplist${t}"></drop-list>`)}
313
+ ${Array.from(this.querySelectorAll("qti-simple-choice")).map((e,t)=>Xt`<drop-list part="drop-list" identifier="droplist${t}"></drop-list>`)}
304
314
  </div>
305
- </div>`}connectedCallback(){super.connectedCallback(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};B.layoutClass=["qti-choices-top","qti-choices-bottom","qti-choices-left","qti-choices-right"],B.styles=[$i`
315
+ </div>`}connectedCallback(){super.connectedCallback(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};z.layoutClass=["qti-choices-top","qti-choices-bottom","qti-choices-left","qti-choices-right"],z.styles=[Xi`
306
316
  [part='drags'] {
307
317
  display: flex;
308
318
  align-items: flex-start;
@@ -350,7 +360,7 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
350
360
  :host(.qti-choices-right) [part='container'] {
351
361
  flex-direction: row-reverse;
352
362
  }
353
- `],s([Ii({type:String})],B.prototype,"orientation",2);customElements.define("qti-order-interaction",B);import{LitElement as Fi,css as Xi,html as Yi}from"lit";var xe=class extends Fi{render(){return Yi`<slot></slot>`}};xe.styles=[Xi`
363
+ `],s([Ui({type:String})],z.prototype,"orientation",2);customElements.define("qti-order-interaction",z);import{LitElement as Bi,css as zi,html as ji}from"lit";var qe=class extends Bi{render(){return ji`<slot></slot>`}};qe.styles=[zi`
354
364
  :host {
355
365
  display: block;
356
366
  }
@@ -361,22 +371,22 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
361
371
  left: 50%;
362
372
  transform: translateX(-50%);
363
373
  }
364
- `];customElements.define("qti-position-object-interaction",xe);import{LitElement as Ui,css as Bi,html as zi}from"lit";var qe=class extends Ui{constructor(){super();this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}render(){return zi`<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)}};qe.styles=[Bi`
374
+ `];customElements.define("qti-position-object-interaction",qe);import{LitElement as Ki,css as Wi,html as Gi}from"lit";var Ce=class extends Ki{constructor(){super();this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}render(){return Gi`<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)}};Ce.styles=[Wi`
365
375
  :host {
366
376
  display: inline-block;
367
377
  position: relative;
368
378
  }
369
- `];customElements.define("qti-position-object-stage",qe);import{css as Ki,html as It}from"lit";import{property as Ft,state as ji}from"lit/decorators.js";import{repeat as Gi}from"lit/directives/repeat.js";import{styleMap as Wi}from"lit/directives/style-map.js";var D=class extends m{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return It` <slot name="prompt"></slot>
379
+ `];customElements.define("qti-position-object-stage",Ce);import{css as Ji,html as Yt}from"lit";import{property as Ut,state as Zi}from"lit/decorators.js";import{repeat as Qi}from"lit/directives/repeat.js";import{styleMap as es}from"lit/directives/style-map.js";var N=class extends m{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return Yt` <slot name="prompt"></slot>
370
380
  <point-container>
371
- ${Gi(this._points,e=>e,(e,t)=>It`
381
+ ${Qi(this._points,e=>e,(e,t)=>Yt`
372
382
  <button
373
383
  part="point"
374
- style=${Wi({position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
384
+ style=${es({position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
375
385
  @click=${r=>{r.stopPropagation(),this._points=this._points.filter((o,a)=>a!==t),this.saveResponse(this._points)}}
376
386
  ></button>
377
387
  `)}
378
388
  <slot></slot>
379
- </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=[Ki`
389
+ </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()}};N.styles=[Ji`
380
390
  host() {
381
391
  display: block;
382
392
  }
@@ -384,26 +394,26 @@ import{a as mt}from"../chunk-M7QOVOG6.js";import{a as ut}from"../chunk-HQKT4SJF.
384
394
  display: block;
385
395
  position: relative;
386
396
  }
387
- `],s([Ft({type:Number,attribute:"max-choices"})],D.prototype,"maxChoices",2),s([Ft({type:Number,attribute:"min-choices"})],D.prototype,"minChoices",2),s([ji()],D.prototype,"_points",2);customElements.define("qti-select-point-interaction",D);import{css as Ji,html as Ce,nothing as ct}from"lit";import{property as z,query as Xt}from"lit/decorators.js";var E=class extends m{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()),Ce`<slot name="prompt"></slot>
397
+ `],s([Ut({type:Number,attribute:"max-choices"})],N.prototype,"maxChoices",2),s([Ut({type:Number,attribute:"min-choices"})],N.prototype,"minChoices",2),s([Zi()],N.prototype,"_points",2);customElements.define("qti-select-point-interaction",N);import{css as ts,html as _e,nothing as dt}from"lit";import{property as j,query as Bt}from"lit/decorators.js";var x=class extends m{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()),_e`<slot name="prompt"></slot>
388
398
  <div id="slider" part="slider">
389
- ${this.csLive.getPropertyValue("--show-bounds")=="true"?Ce`<div id="bounds" part="bounds">
399
+ ${this.csLive.getPropertyValue("--show-bounds")=="true"?_e`<div id="bounds" part="bounds">
390
400
  <div>${this._min}</div>
391
401
  <div>${this._max}</div>
392
- </div>`:ct}
393
- ${this.csLive.getPropertyValue("--show-ticks")=="true"?Ce`<div id="ticks" part="ticks"></div>`:ct}
402
+ </div>`:dt}
403
+ ${this.csLive.getPropertyValue("--show-ticks")=="true"?_e`<div id="ticks" part="ticks"></div>`:dt}
394
404
  <div id="rail" part="rail" @mousedown=${this._onMouseDown} @touchstart=${this._onTouchMove}>
395
405
  <div id="knob" part="knob">
396
- ${this.csLive.getPropertyValue("--show-value")=="true"?Ce`<div id="value" part="value">${this.value}</div>`:ct}
406
+ ${this.csLive.getPropertyValue("--show-value")=="true"?_e`<div id="value" part="value">${this.value}</div>`:dt}
397
407
  </div>
398
408
  </div>
399
- </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),a=o-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(a),e.stopPropagation()}_onMouseDown(e){let t=a=>{let l=a.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(l),a.preventDefault(),a.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}};E.styles=[Ji``],s([Xt("#knob")],E.prototype,"_knob",2),s([Xt("#rail")],E.prototype,"_rail",2),s([z({type:Number})],E.prototype,"value",2),s([z({type:Boolean,attribute:"step-label"})],E.prototype,"stepLabel",2),s([z({type:Boolean})],E.prototype,"reverse",2),s([z({type:Number,attribute:"lower-bound"})],E.prototype,"min",1),s([z({type:Number,attribute:"upper-bound"})],E.prototype,"max",1),s([z({type:Number,attribute:"step"})],E.prototype,"step",1),s([f("disabled",{waitUntilFirstUpdate:!0})],E.prototype,"_handleDisabledChange",2),s([f("readonly",{waitUntilFirstUpdate:!0})],E.prototype,"_handleReadonlyChange",2);customElements.define("qti-slider-interaction",E);import{LitElement as Zi,html as Qi}from"lit";import{property as es}from"lit/decorators.js";var _e=class extends Zi{render(){return Qi`<button @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.closest("qti-assessment-item").processResponse()}};s([es({type:String})],_e.prototype,"title",2);customElements.define("qti-end-attempt-interaction",_e);import{LitElement as ts,css as rs,html as is}from"lit";var ke=class extends ts{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return is` <slot name="qti-gap-img"></slot> `}};ke.styles=rs`
409
+ </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),a=o-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(a),e.stopPropagation()}_onMouseDown(e){let t=a=>{let l=a.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(l),a.preventDefault(),a.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=[ts``],s([Bt("#knob")],x.prototype,"_knob",2),s([Bt("#rail")],x.prototype,"_rail",2),s([j({type:Number})],x.prototype,"value",2),s([j({type:Boolean,attribute:"step-label"})],x.prototype,"stepLabel",2),s([j({type:Boolean})],x.prototype,"reverse",2),s([j({type:Number,attribute:"lower-bound"})],x.prototype,"min",1),s([j({type:Number,attribute:"upper-bound"})],x.prototype,"max",1),s([j({type:Number,attribute:"step"})],x.prototype,"step",1),s([f("disabled",{waitUntilFirstUpdate:!0})],x.prototype,"_handleDisabledChange",2),s([f("readonly",{waitUntilFirstUpdate:!0})],x.prototype,"_handleReadonlyChange",2);customElements.define("qti-slider-interaction",x);import{LitElement as rs,html as is}from"lit";import{property as ss}from"lit/decorators.js";var ke=class extends rs{render(){return is`<button @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.closest("qti-assessment-item").processResponse()}};s([ss({type:String})],ke.prototype,"title",2);customElements.define("qti-end-attempt-interaction",ke);import{LitElement as os,css as ns,html as as}from"lit";var Re=class extends os{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return as` <slot name="qti-gap-img"></slot> `}};Re.styles=ns`
400
410
  :host {
401
411
  position: absolute;
402
412
  }
403
- `;customElements.define("qti-associable-hotspot",ke);import{LitElement as ss}from"lit";import{property as os}from"lit/decorators.js";var Ae=class extends ss{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};s([os({type:Number,reflect:!0})],Ae.prototype,"tabindex",2);customElements.define("qti-gap-img",Ae);import{html as ns,LitElement as as}from"lit";import{property as ls}from"lit/decorators.js";var we=class extends as{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return ns`<slot></slot>`}};s([ls({type:Number,reflect:!0})],we.prototype,"tabindex",2);customElements.define("qti-gap-text",we);import{html as cs,LitElement as ps}from"lit";import{property as ds}from"lit/decorators.js";var Te=class extends ps{constructor(){super(...arguments);this.tabindex=0}render(){return cs` <slot name="qti-gap-text"></slot>`}};s([ds({type:Number,reflect:!0})],Te.prototype,"tabindex",2);customElements.define("qti-gap",Te);import{css as us}from"lit";import{property as ms}from"lit/decorators.js";var Z=class extends y{};Z.styles=us`
413
+ `;customElements.define("qti-associable-hotspot",Re);import{LitElement as ls}from"lit";import{property as cs}from"lit/decorators.js";var Ae=class extends ls{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};s([cs({type:Number,reflect:!0})],Ae.prototype,"tabindex",2);customElements.define("qti-gap-img",Ae);import{html as ps,LitElement as ds}from"lit";import{property as us}from"lit/decorators.js";var Te=class extends ds{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return ps`<slot></slot>`}};s([us({type:Number,reflect:!0})],Te.prototype,"tabindex",2);customElements.define("qti-gap-text",Te);import{html as ms,LitElement as hs}from"lit";import{property as fs}from"lit/decorators.js";var we=class extends hs{constructor(){super(...arguments);this.tabindex=0}render(){return ms` <slot name="qti-gap-text"></slot>`}};s([fs({type:Number,reflect:!0})],we.prototype,"tabindex",2);customElements.define("qti-gap",we);import{css as bs}from"lit";import{property as gs}from"lit/decorators.js";var Q=class extends y{};Q.styles=bs`
404
414
  :host {
405
415
  position: absolute;
406
416
  }
407
- `,s([ms({attribute:"aria-ordervalue",type:Number,reflect:!0})],Z.prototype,"order",2);customElements.define("qti-hotspot-choice",Z);import{customElement as hs}from"lit/decorators.js";import{html as fs}from"lit";var Re=class extends y{render(){return fs`<div part="ch"><div part="cha"></div></div>
408
- <slot></slot> `}};Re=s([hs("qti-hottext")],Re);import{LitElement as gs}from"lit";var pt=class extends gs{};customElements.define("qti-inline-choice",pt);import{customElement as bs}from"lit/decorators.js";import{html as vs}from"lit";var Le=class extends y{render(){return vs`<div part="ch"><div part="cha"></div></div>
409
- <slot></slot> `}};Le=s([bs("qti-simple-choice")],Le);export{Ct as Events,V as OutcomeVariable,me as QtPrintedVariable,Ge as QtiAnd,k as QtiAssessmentItem,ke as QtiAssociableHotspot,W as QtiAssociateInteraction,de as QtiBaseValue,y as QtiChoice,qt as QtiChoiceElementSelected,I as QtiChoiceInteraction,ee as QtiCompanionMaterialsInfo,Je as QtiContains,Ze as QtiCorrect,_e as QtiEndAttemptInteraction,ce as QtiEqual,pe as QtiEqualRounded,u as QtiExpression,w as QtiExtendedTextInteraction,$e as QtiFeedbackBlock,se as QtiFeedbackInline,Te as QtiGap,Ae as QtiGapImg,fe as QtiGapMatchInteraction,we as QtiGapText,M as QtiGraphicAssociateInteraction,ge as QtiGraphicGapMatchInteraction,be as QtiGraphicOrderInteraction,Be as QtiGt,ze as QtiGte,Z as QtiHotspotChoice,ve as QtiHotspotInteraction,Re as QtiHottext,Fe as QtiHottextInteraction,pt as QtiInlineChoice,ae as QtiInlineChoiceInteraction,ft as QtiInteractionChanged,xt as QtiInteractionResponse,Qe as QtiIsNull,Et as QtiLooseChoice,Ke as QtiLt,je as QtiLte,ue as QtiMapResponse,X as QtiMapping,tt as QtiMatch,ye as QtiMatchInteraction,Ee as QtiMediaInteraction,Ve as QtiModalFeedback,it as QtiMultiple,et as QtiNot,We as QtiOr,B as QtiOrderInteraction,st as QtiOrdered,ht as QtiOutcomeChanged,Oe as QtiOutcomeDeclaration,nt as QtiPortableCustomInteraction,qe as QtiPositionObjectStage,le as QtiProduct,De as QtiPrompt,vt as QtiRegisterChoice,yt as QtiRegisterHotspot,bt as QtiRegisterInteraction,gt as QtiRegisterVariable,Xe as QtiResponseCondition,P as QtiResponseDeclaration,j as QtiResponseElse,Ue as QtiResponseElseIf,G as QtiResponseIf,F as QtiResponseProcessing,S as QtiRule,xe as QtiSPositionObjectInteraction,D as QtiSelectPointInteraction,Ye as QtiSetOutcomeValue,lt as QtiSimpleAssociableChoice,Le as QtiSimpleChoice,E as QtiSliderInteraction,Ne as QtiStylesheet,_ as QtiTextEntryInteraction,rt as QtiVariable,O as ResponseVariable,re as qtiContentBody,A as qtiRubricBlock};
417
+ `,s([gs({attribute:"aria-ordervalue",type:Number,reflect:!0})],Q.prototype,"order",2);customElements.define("qti-hotspot-choice",Q);import{customElement as vs}from"lit/decorators.js";import{html as ys}from"lit";var Le=class extends y{render(){return ys`<div part="ch"><div part="cha"></div></div>
418
+ <slot></slot> `}};Le=s([vs("qti-hottext")],Le);import{LitElement as xs}from"lit";var ut=class extends xs{};customElements.define("qti-inline-choice",ut);import{customElement as Es}from"lit/decorators.js";import{html as qs}from"lit";var Se=class extends y{render(){return qs`<div part="ch"><div part="cha"></div></div>
419
+ <slot></slot> `}};Se=s([Es("qti-simple-choice")],Se);export{kt as Events,O as OutcomeVariable,he as QtPrintedVariable,Ge as QtiAnd,k as QtiAssessmentItem,Re as QtiAssociableHotspot,J as QtiAssociateInteraction,ue as QtiBaseValue,y as QtiChoice,_t as QtiChoiceElementSelected,F as QtiChoiceInteraction,te as QtiCompanionMaterialsInfo,Ze as QtiContains,Qe as QtiCorrect,ke as QtiEndAttemptInteraction,pe as QtiEqual,de as QtiEqualRounded,u as QtiExpression,A as QtiExtendedTextInteraction,Pe as QtiFeedbackBlock,oe as QtiFeedbackInline,we as QtiGap,Ae as QtiGapImg,be as QtiGapMatchInteraction,Te as QtiGapText,M as QtiGraphicAssociateInteraction,ge as QtiGraphicGapMatchInteraction,ve as QtiGraphicOrderInteraction,ze as QtiGt,je as QtiGte,Q as QtiHotspotChoice,ye as QtiHotspotInteraction,Le as QtiHottext,Xe as QtiHottextInteraction,ut as QtiInlineChoice,le as QtiInlineChoiceInteraction,gt as QtiInteractionChanged,Ct as QtiInteractionResponse,et as QtiIsNull,qt as QtiLooseChoice,Ke as QtiLt,We as QtiLte,me as QtiMapResponse,Y as QtiMapping,rt as QtiMatch,xe as QtiMatchInteraction,Ee as QtiMediaInteraction,nt as QtiMember,$e as QtiModalFeedback,st as QtiMultiple,tt as QtiNot,Je as QtiOr,z as QtiOrderInteraction,ot as QtiOrdered,bt as QtiOutcomeChanged,I as QtiOutcomeDeclaration,lt as QtiPortableCustomInteraction,Ce as QtiPositionObjectStage,ce as QtiProduct,De as QtiPrompt,xt as QtiRegisterChoice,Et as QtiRegisterHotspot,yt as QtiRegisterInteraction,vt as QtiRegisterVariable,Ye as QtiResponseCondition,P as QtiResponseDeclaration,W as QtiResponseElse,Be as QtiResponseElseIf,G as QtiResponseIf,X as QtiResponseProcessing,S as QtiRule,qe as QtiSPositionObjectInteraction,N as QtiSelectPointInteraction,Ue as QtiSetOutcomeValue,pt as QtiSimpleAssociableChoice,Se as QtiSimpleChoice,x as QtiSliderInteraction,Ne as QtiStylesheet,_ as QtiTextEntryInteraction,it as QtiVariable,H as ResponseVariable,ie as qtiContentBody,R as qtiRubricBlock};