@citolab/qti-components 6.0.23 → 6.0.24

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 (36) hide show
  1. package/dist/chunk-BVYXUE3V.js +1 -0
  2. package/dist/chunk-C4C24R3I.cjs +1 -0
  3. package/dist/chunk-NT6UB5QT.cjs +17 -0
  4. package/dist/chunk-RGNNQ7CN.js +17 -0
  5. package/dist/{chunk-EHTDKAYF.js → chunk-WFE4NR22.js} +3 -3
  6. package/dist/{chunk-VI35S4EM.cjs → chunk-XHNCXKJ6.cjs} +3 -3
  7. package/dist/custom-elements.json +680 -688
  8. package/dist/decorators/index.cjs +1 -1
  9. package/dist/decorators/index.js +1 -1
  10. package/dist/index.cjs +55 -55
  11. package/dist/index.d.cts +20 -29
  12. package/dist/index.d.ts +20 -29
  13. package/dist/index.js +47 -47
  14. package/dist/qti-components/index.cjs +15 -15
  15. package/dist/qti-components/index.d.cts +8 -9
  16. package/dist/qti-components/index.d.ts +8 -9
  17. package/dist/qti-components/index.js +23 -23
  18. package/dist/qti-item/index.cjs +1 -1
  19. package/dist/qti-item/index.d.cts +1 -2
  20. package/dist/qti-item/index.d.ts +1 -2
  21. package/dist/qti-item/index.js +1 -1
  22. package/dist/qti-item-395a9535.d.ts +19 -0
  23. package/dist/qti-item-react/index.cjs +1 -1
  24. package/dist/qti-item-react/index.d.cts +7 -15
  25. package/dist/qti-item-react/index.d.ts +7 -15
  26. package/dist/qti-item-react/index.js +1 -1
  27. package/dist/{qti-simple-choice-b4b79072.d.ts → qti-simple-choice-6d581309.d.ts} +109 -5
  28. package/dist/qti-transform/index.cjs +1 -17
  29. package/dist/qti-transform/index.js +1 -17
  30. package/package.json +1 -2
  31. package/dist/chunk-3O4URV5U.cjs +0 -1
  32. package/dist/chunk-6RJ7J4AE.cjs +0 -1
  33. package/dist/chunk-M7QOVOG6.js +0 -1
  34. package/dist/chunk-WFLR5TH7.js +0 -1
  35. package/dist/qti-assessment-item-e8a67444.d.ts +0 -109
  36. package/dist/qti-item-77742afa.d.ts +0 -30
@@ -1,13 +1,13 @@
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(){this.value=void 0}};var O=class{constructor(){this.value=void 0}};import{customElement as Wt,property as te}from"lit/decorators.js";import{html as Gt,LitElement as Jt}from"lit";var k=class extends Jt{constructor(){super();this.variables=[];this.feedbackElements=[];this.interactionElements=[];this._numAttempts=0;this._handleDisabledChange=(e,t)=>{this.interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this.interactionElements.forEach(r=>r.readonly=t);this.addEventListener("qti-register-variable",this._registerVariable),this.addEventListener("qti-register-feedback",this.registerFeedbackElement),this.addEventListener("qti-register-interaction",this.registerInteractionElement),this.addEventListener("qti-outcome-changed",this.outcomeChanged),this.addEventListener("qti-interaction-response",this.interactionResponse)}render(){return Gt`<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(),this._numAttempts++,this.dispatchEvent(new CustomEvent("qti-response-processing")),!0):(console.info("Client side response webcomponents not available"),!1):(console.info("Client side response processing template not available"),!1)}set responses(e){if(e)for(let t of e){let r=this.interactionElements.find(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){switch(e){case"numAttempts":return{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:this._numAttempts};default:{let t=this.variables.find(r=>r.identifier===e);return t||(console.warn(`Variable with identifier ${e} was not found`),null)}break}}getResponse(e){let t=this.variables.find(o=>o.identifier===e);return t instanceof 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:r.value}}))}};s([te({type:Boolean})],k.prototype,"disabled",2),s([te({type:Boolean})],k.prototype,"readonly",2),s([te({type:String})],k.prototype,"title",2),s([te({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([Wt("qti-assessment-item")],k);import{LitElement as Zt}from"lit";var Ne=class extends Zt{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 er}from"lit/decorators.js";import{html as tr,LitElement as rr}from"lit";import{css as Qt}from"lit";var At=Qt`
1
+ import{a as ft,b as f}from"../chunk-BVYXUE3V.js";import{a as ht}from"../chunk-5GG2XAUT.js";import{a as C,b as N,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(){this.value=null;this.candidateResponse=null;this.correctResponse=null}};var O=class{constructor(){this.value=null}};import{customElement as Wt,property as te}from"lit/decorators.js";import{html as Gt,LitElement as Jt}from"lit";var k=class extends Jt{constructor(){super();this.variables=[];this.feedbackElements=[];this.interactionElements=[];this._numAttempts=0;this._handleDisabledChange=(e,t)=>{this.interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this.interactionElements.forEach(r=>r.readonly=t);this.addEventListener("qti-register-variable",this._registerVariable),this.addEventListener("qti-register-feedback",this.registerFeedbackElement),this.addEventListener("qti-register-interaction",this.registerInteractionElement),this.addEventListener("qti-outcome-changed",this.outcomeChanged),this.addEventListener("qti-interaction-response",this.interactionResponse)}render(){return Gt`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-item-connected",{bubbles:!0,composed:!0,detail:this}))}disconnectedCallback(){this.removeEventListener("qti-register-variable",this._registerVariable),this.removeEventListener("qti-register-feedback",this.registerFeedbackElement),this.removeEventListener("qti-register-interaction",this.registerInteractionElement),this.removeEventListener("qti-outcome-changed",this.outcomeChanged),this.removeEventListener("qti-interaction-response",this.interactionResponse)}_registerVariable(e){this.variables.push(e.detail.variable)}showCorrectResponse(){let e=this.variables.filter(t=>"correctResponse"in t&&t.correctResponse);this.responses=e.map(t=>({responseIdentifier:t.identifier,response:t.correctResponse}))}processResponse(){let e=this.querySelector("qti-response-processing");return e?e.process?(e.process(),this._numAttempts++,this.dispatchEvent(new CustomEvent("qti-response-processing")),!0):(console.info("Client side response webcomponents not available"),!1):(console.info("Client side response processing template not available"),!1)}set responses(e){if(e)for(let t of e){let r=this.interactionElements.find(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){switch(e){case"numAttempts":return{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:this._numAttempts.toString()};default:{let t=this.variables.find(r=>r.identifier===e);return t||(console.warn(`Variable with identifier ${e} was not found`),null)}break}}getResponse(e){let t=this.variables.find(o=>o.identifier===e);return t instanceof 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;switch(e){case"completionStatus":r={identifier:"completionStatus",cardinality:"single",baseType:"string",value:t};break;default:{if(r=this.getOutcome(e),!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}r.cardinality==="single"?r.value=t:r.value.push(t)}break}this.dispatchEvent(new CustomEvent("qti-outcome-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,outcomeIdentifier:e,value:r.value}}))}};s([te({type:Boolean})],k.prototype,"disabled",2),s([te({type:Boolean})],k.prototype,"readonly",2),s([te({type:String})],k.prototype,"title",2),s([te({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([Wt("qti-assessment-item")],k);import{LitElement as Zt}from"lit";var De=class extends Zt{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",De);import{customElement as er}from"lit/decorators.js";import{html as tr,LitElement as rr}from"lit";import{css as Qt}from"lit";var At=Qt`
2
2
  :host {
3
3
  display: block;
4
4
  }
5
5
  `;var $=class extends rr{render(){return tr` <slot name="qti-rubric-block"></slot>
6
- <slot></slot>`}};$.styles=At,$=s([er("qti-item-body")],$);import{html as ir,LitElement as sr}from"lit";var De=class extends sr{render(){return ir` <slot></slot> `}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};customElements.define("qti-prompt",De);import{html as or}from"lit/static-html.js";import{property as K}from"lit/decorators.js";import{LitElement as nr}from"lit";var ar={SPACE:32},y=class extends nr{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 ar.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"),or` <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 lr,LitElement as cr}from"lit";var V=class extends cr{render(){return lr``}};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;e.baseType=this.baseType,e.identifier=this.identifier,e.correctResponse=this.correctResponse,e.cardinality=this.cardinality||"single",e.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===0?e.value=null: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 pr}from"lit";import{customElement as dr}from"lit/decorators.js";var re=class extends pr{};re=s([dr("qti-companion-materials-info")],re);import{LitElement as ur,css as mr,html as hr}from"lit";import{customElement as fr,property as ie}from"lit/decorators.js";import{ContextConsumer as br}from"@lit-labs/context";var A=class extends ur{constructor(){super(...arguments);this.logger=new br(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 hr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};A.styles=mr`
6
+ <slot></slot>`}};$.styles=At,$=s([er("qti-item-body")],$);import{html as ir,LitElement as sr}from"lit";var Ne=class extends sr{render(){return ir` <slot></slot> `}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};customElements.define("qti-prompt",Ne);import{html as or}from"lit/static-html.js";import{property as K}from"lit/decorators.js";import{LitElement as nr}from"lit";var ar={SPACE:32},y=class extends nr{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 ar.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"),or` <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 lr,LitElement as cr}from"lit";var V=class extends cr{render(){return lr``}defaultValues(i){let e=Array.from(this.querySelectorAll("qti-default-value > qti-value"));if(e.length===0&&(i.cardinality==="multiple"||i.cardinality==="ordered"))return[];if(e.length===0)return null;let t=e.map(r=>r.innerHTML);return t.length>1||i.cardinality==="multiple"||i.cardinality==="ordered"?t:t[0]}};customElements.define("qti-variabledeclaration",V);import{property as He}from"lit/decorators.js";var P=class extends V{connectedCallback(){super.connectedCallback();let e=new H;e.baseType=this.baseType,e.identifier=this.identifier,e.correctResponse=this.correctResponse,e.cardinality=this.cardinality||"single",e.mapping=this.mapping,e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}get correctResponse(){let e,t=this.querySelector("qti-correct-response");if(t){let r=t.querySelectorAll("qti-value");if(this.cardinality==="single"&&r.length>0)e=r[0].textContent,r[0].remove();else if(this.cardinality!=="single"){e=[];for(let o=0;o<r.length;o++)e.push(r[o].textContent),r[o].remove()}}return e}get mapping(){return this.querySelector("qti-mapping")}};s([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.value=this.defaultValues(e),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 pr}from"lit";import{customElement as dr}from"lit/decorators.js";var re=class extends pr{};re=s([dr("qti-companion-materials-info")],re);import{LitElement as ur,css as mr,html as hr}from"lit";import{customElement as fr,property as ie}from"lit/decorators.js";import{ContextConsumer as br}from"@lit-labs/context";var A=class extends ur{constructor(){super(...arguments);this.logger=new br(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 hr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};A.styles=mr`
7
7
  :host {
8
8
  display: block;
9
9
  }
10
- `,s([ie({type:String})],A.prototype,"id",2),s([ie({type:String})],A.prototype,"use",2),s([ie({type:String})],A.prototype,"view",2),s([ie({type:String,attribute:"class"})],A.prototype,"classNames",2),s([f("classNames",{waitUntilFirstUpdate:!0})],A.prototype,"handleclassNamesChange",1),A=s([fr("qti-rubric-block")],A);import{LitElement as gr,html as vr}from"lit";import{customElement as yr}from"lit/decorators.js";var se=class extends gr{render(){return vr`<slot></slot>`}};se=s([yr("qti-content-body")],se);import{css as Er,html as qr}from"lit";import{LitElement as xr}from"lit";import{property as oe}from"lit/decorators.js";var E=class extends xr{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=(o=this.closest("qti-assessment-item").getOutcome(e))==null?void 0:o.value;if(this.outcomeIdentifier!==e||!t)return;let r=Array.isArray(t)?t.includes(this.identifier):this.identifier===(t==null?void 0:t.toString());this.showFeedback(r)}showFeedback(e){this.showStatus=e?"on":"off"}};s([oe({type:String,attribute:"show-hide"})],E.prototype,"showHide",2),s([oe({type:String,attribute:"outcome-identifier"})],E.prototype,"outcomeIdentifier",2),s([oe({type:String})],E.prototype,"identifier",2),s([oe({type:String,attribute:!1})],E.prototype,"showStatus",2);var ne=class extends E{constructor(){super(...arguments);this.render=()=>qr` <slot class="${this.showStatus}"></slot> `}};ne.styles=Er`
10
+ `,s([ie({type:String})],A.prototype,"id",2),s([ie({type:String})],A.prototype,"use",2),s([ie({type:String})],A.prototype,"view",2),s([ie({type:String,attribute:"class"})],A.prototype,"classNames",2),s([f("classNames",{waitUntilFirstUpdate:!0})],A.prototype,"handleclassNamesChange",1),A=s([fr("qti-rubric-block")],A);import{LitElement as gr,html as vr}from"lit";import{customElement as yr}from"lit/decorators.js";var se=class extends gr{render(){return vr`<slot></slot>`}};se=s([yr("qti-content-body")],se);import{css as Er,html as qr}from"lit";import{LitElement as xr}from"lit";import{property as oe}from"lit/decorators.js";var E=class extends xr{constructor(){super();this.showHide="show",this.showFeedback(this.showHide==="hide")}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(e){let t=this.closest("qti-assessment-item").getOutcome(e);if(this.outcomeIdentifier!==e||!t)return;let r=!1;Array.isArray(t.value)?r=t.baseType=="float"||t.baseType=="integer"?t.value.includes(this.identifier):t.value.includes(this.identifier):r=t.baseType=="float"||t.baseType=="integer"?this.identifier===t.value:this.identifier===t.value,this.showFeedback(r)}showFeedback(e){this.showStatus=e?"on":"off"}};s([oe({type:String,attribute:"show-hide"})],E.prototype,"showHide",2),s([oe({type:String,attribute:"outcome-identifier"})],E.prototype,"outcomeIdentifier",2),s([oe({type:String})],E.prototype,"identifier",2),s([oe({type:String,attribute:!1})],E.prototype,"showStatus",2);var ne=class extends E{constructor(){super(...arguments);this.render=()=>qr` <slot class="${this.showStatus}"></slot> `}};ne.styles=Er`
11
11
  .on {
12
12
  display: inline-block;
13
13
  }
@@ -38,11 +38,11 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
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",Pe);import{css as Ar,html as wr}from"lit";import{ifDefined as wt}from"lit/directives/if-defined.js";import{property as Ie}from"lit/decorators.js";import{LitElement as kr}from"lit";var m=class extends kr{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 Tr,property as ae,state as Tt}from"lit/decorators.js";import{createRef as Rr}from"lit/directives/ref.js";var _=class extends m{constructor(){super(...arguments);this._value="";this._size=5;this.inputRef=Rr()}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[Ar`
41
+ `}firstUpdated(i){this.checkShowFeedback(this.outcomeIdentifier)}};customElements.define("qti-feedback-block",Pe);import{css as Ar,html as Tr}from"lit";import{ifDefined as Tt}from"lit/directives/if-defined.js";import{property as Ie}from"lit/decorators.js";import{LitElement as kr}from"lit";var m=class extends kr{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 wr,property as ae,state as wt}from"lit/decorators.js";import{createRef as Rr}from"lit/directives/ref.js";var _=class extends m{constructor(){super(...arguments);this._value="";this._size=5;this.inputRef=Rr()}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[Ar`
42
42
  :host {
43
43
  display: inline-flex;
44
44
  }
45
- `]}render(){return wr` <input
45
+ `]}render(){return Tr` <input
46
46
  part="input"
47
47
  spellcheck="false"
48
48
  autocomplete="off"
@@ -50,13 +50,13 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
50
50
  @keyup="${this.textChanged}"
51
51
  @change="${this.textChanged}"
52
52
  type="text"
53
- placeholder="${wt(this.placeholderText?this.placeholderText:void 0)}"
53
+ placeholder="${Tt(this.placeholderText?this.placeholderText:void 0)}"
54
54
  .value="${this._value}"
55
55
  size="${this._size}"
56
- pattern="${wt(this.patternMask?this.patternMask:void 0)}"
56
+ pattern="${Tt(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([ae({type:Number,attribute:"expected-length"})],_.prototype,"expectedLength",2),s([ae({type:String,attribute:"pattern-mask"})],_.prototype,"patternMask",2),s([ae({type:String,attribute:"placeholder-text"})],_.prototype,"placeholderText",2),s([Tt()],_.prototype,"_value",2),s([Tt()],_.prototype,"_size",2),s([ae({type:String,attribute:"class"})],_.prototype,"classNames",2),s([f("classNames")],_.prototype,"handleclassNamesChange",1),_=s([Tr("qti-text-entry-interaction")],_);import{css as Lr,html as Sr}from"lit";import{ifDefined as Fe}from"lit/directives/if-defined.js";import{ref as Mr,createRef as Vr}from"lit/directives/ref.js";import{customElement as Nr,property as le,state as Dr}from"lit/decorators.js";var w=class extends m{constructor(){super(...arguments);this.textareaRef=Vr();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[Lr`
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([ae({type:Number,attribute:"expected-length"})],_.prototype,"expectedLength",2),s([ae({type:String,attribute:"pattern-mask"})],_.prototype,"patternMask",2),s([ae({type:String,attribute:"placeholder-text"})],_.prototype,"placeholderText",2),s([wt()],_.prototype,"_value",2),s([wt()],_.prototype,"_size",2),s([ae({type:String,attribute:"class"})],_.prototype,"classNames",2),s([f("classNames")],_.prototype,"handleclassNamesChange",1),_=s([wr("qti-text-entry-interaction")],_);import{css as Lr,html as Sr}from"lit";import{ifDefined as Fe}from"lit/directives/if-defined.js";import{ref as Mr,createRef as Vr}from"lit/directives/ref.js";import{customElement as Dr,property as le,state as Nr}from"lit/decorators.js";var T=class extends m{constructor(){super(...arguments);this.textareaRef=Vr();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[Lr`
60
60
  /* PK: display host as block, else design will be collapsed */
61
61
  :host {
62
62
  display: block;
@@ -80,7 +80,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
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([le({type:Number,attribute:"expected-length"})],w.prototype,"expectedLength",2),s([le({type:String,attribute:"pattern-mask"})],w.prototype,"patternMask",2),s([le({type:String,attribute:"placeholder-text"})],w.prototype,"placeholderText",2),s([Dr()],w.prototype,"_value",2),s([le({type:String,attribute:"class"})],w.prototype,"classNames",2),s([f("classNames",{waitUntilFirstUpdate:!0})],w.prototype,"handleclassNamesChange",1),w=s([Nr("qti-extended-text-interaction")],w);import{html as Hr}from"lit";import{property as Rt}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([Rt({type:Number,attribute:"min-choices"})],v.prototype,"minChoices",2),s([Rt({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=()=>Hr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};customElements.define("qti-hottext-interaction",Xe);import{css as Or,html as Lt}from"lit";var ce=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[Or`
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([le({type:Number,attribute:"expected-length"})],T.prototype,"expectedLength",2),s([le({type:String,attribute:"pattern-mask"})],T.prototype,"patternMask",2),s([le({type:String,attribute:"placeholder-text"})],T.prototype,"placeholderText",2),s([Nr()],T.prototype,"_value",2),s([le({type:String,attribute:"class"})],T.prototype,"classNames",2),s([f("classNames",{waitUntilFirstUpdate:!0})],T.prototype,"handleclassNamesChange",1),T=s([Dr("qti-extended-text-interaction")],T);import{html as Hr}from"lit";import{property as Rt}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([Rt({type:Number,attribute:"min-choices"})],v.prototype,"minChoices",2),s([Rt({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=()=>Hr`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};customElements.define("qti-hottext-interaction",Xe);import{css as Or,html as Lt}from"lit";var ce=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 N(C({},m.properties),{options:{type:Array,value:[],attribute:!1}})}connectedCallback(){super.connectedCallback()}static get styles(){return[Or`
84
84
  :host {
85
85
  display: inline-block;
86
86
  }
@@ -91,7 +91,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
91
91
  ?readonly="${this.readonly}"
92
92
  >
93
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)}};ce.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",ce);import{customElement as Pr,property as Ir}from"lit/decorators.js";import{html as Fr}from"lit";import{css as $r}from"lit";var St=$r`
94
+ </select>`}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>N(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=>N(C({},r),{selected:r.value===t})),this.saveResponse(t)}};ce.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",ce);import{customElement as Pr,property as Ir}from"lit/decorators.js";import{html as Fr}from"lit";import{css as $r}from"lit";var St=$r`
95
95
  :host {
96
96
  display: flex;
97
97
  flex-direction: column;
@@ -130,7 +130,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
130
130
  </qti-set-outcome-value>
131
131
  </qti-response-else>
132
132
  </qti-response-condition>
133
- </qti-response-processing>`,Nt=`<qti-response-processing>
133
+ </qti-response-processing>`,Dt=`<qti-response-processing>
134
134
  <qti-response-condition>
135
135
  <qti-response-if>
136
136
  <qti-is-null>
@@ -146,7 +146,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
146
146
  </qti-set-outcome-value>
147
147
  </qti-response-else>
148
148
  </qti-response-condition>
149
- </qti-response-processing>`;var X=class extends Ur{render(){return Yr`<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([Xr("qti-response-processing")],X);import{customElement as Br}from"lit/decorators.js";import{html as zr,LitElement as jr}from"lit";var S=class extends jr{render(){return zr``}process(){throw new Error("Not implemented")}};S=s([Br("qti-rule")],S);import{html as Kr}from"lit";var Ye=class extends S{render(){return Kr`<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 Jr}from"lit";import{html as Wr,LitElement as Gr}from"lit";var W=class extends Gr{static get properties(){return{debugCalculateResult:{type:Object}}}render(){return Wr` <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 Jr`${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 Zr}from"lit";var Be=class extends G{render(){return Zr`${super.render()}`}};customElements.define("qti-response-else-if",Be);import{LitElement as Qr,css as ei,html as Dt}from"lit";import{state as ti}from"lit/decorators.js";var u=class extends Qr{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=ei`
149
+ </qti-response-processing>`;var X=class extends Ur{render(){return Yr`<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(Dt));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([Xr("qti-response-processing")],X);import{customElement as Br}from"lit/decorators.js";import{html as zr,LitElement as jr}from"lit";var S=class extends jr{render(){return zr``}process(){throw new Error("Not implemented")}};S=s([Br("qti-rule")],S);import{html as Kr}from"lit";var Ye=class extends S{render(){return Kr`<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 Jr}from"lit";import{html as Wr,LitElement as Gr}from"lit";var W=class extends Gr{static get properties(){return{debugCalculateResult:{type:Object}}}render(){return Wr` <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 Jr`${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 Zr}from"lit";var Be=class extends G{render(){return Zr`${super.render()}`}};customElements.define("qti-response-else-if",Be);import{LitElement as Qr,css as ei,html as Nt}from"lit";import{state as ti}from"lit/decorators.js";var u=class extends Qr{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 Nt`${this._error.map(e=>Nt`<div role="alert">${e}</div>`)}`}calculate(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};u.styles=ei`
150
150
  [role='alert'] {
151
151
  border: 1px solid red;
152
152
  background: pink;
@@ -156,7 +156,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
156
156
  border-radius: 5px;
157
157
  margin-bottom: 3px;
158
158
  }
159
- `,s([ti()],u.prototype,"error",1);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 ri}from"lit";var T=class extends u{render(){return ri``}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 ii}from"lit";var Ge=class extends T{render(){return ii``}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 si}from"lit/decorators.js";import{html as oi}from"lit";var pe=class extends u{constructor(){super(...arguments);this.mult=0;this.render=()=>oi`<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([si()],pe.prototype,"mult",2);customElements.define("qti-product",pe);import{html as ni}from"lit";var Je=class extends T{render(){return ni``}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 ai}from"lit/decorators.js";var R=class{static compareSingleValues(i,e,t){switch(t){case"identifier":case"string":return i===e;case"integer":{let r=parseInt(i,10),o=parseInt(e,10);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`Cannot convert ${i} and/or ${e} to int.`);break}case"float":{let r=parseFloat(i),o=parseFloat(e);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`couldn't convert ${i} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=i.split(" ").sort(),o=e.split(" ").sort();if(r.length===2&&o.length===2)return t==="pair"&&(r.sort(),o.sort()),r.join(" ")===o.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${i} 2: ${e}`);break}}return!1}};var de=class extends u{constructor(){super(...arguments);this.toleranceMode="exact"}calculate(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):R.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};s([ai({type:String})],de.prototype,"toleranceMode",2);customElements.define("qti-equal",de);import{property as li}from"lit/decorators.js";var ue=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([li({type:String})],ue.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",ue);import{property as ci}from"lit/decorators.js";var me=class extends u{constructor(){super(...arguments);this.baseType="string"}calculate(){return this.textContent}};s([ci({type:String,attribute:"base-type"})],me.prototype,"baseType",2);customElements.define("qti-base-value",me);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 pi}from"lit";var Qe=class extends u{render(){return pi``}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 di}from"lit";var tt=class extends u{render(){return di`${super.render()}`}calculate(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",tt);import{property as ui}from"lit/decorators.js";var he=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([ui({type:String})],he.prototype,"identifier",2);customElements.define("qti-map-response",he);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):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",rt);import{html as mi}from"lit";var it=class extends u{render(){return mi``}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 hi,html as Ht}from"lit";import{property as fi,state as bi}from"lit/decorators.js";var J=class extends hi{constructor(){super();this.value="";this.closest("qti-assessment-item").addEventListener("qti-response-processing",()=>{this.value=this.calculate()})}render(){return Ht`${Array.isArray(this.value)?this.value.map(e=>Ht`${e}`):this.value}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.identifier;return e.getVariable(t).value}};s([fi({type:String})],J.prototype,"identifier",2),s([bi()],J.prototype,"value",2);customElements.define("qti-printed-variable",J);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 gi}from"lit";var Y=class extends gi{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 vi,html as Ot}from"lit";var lt=class extends vi{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 Ot`<slot></slot>${this._errorMessage&&Ot`<div style="color:red">
159
+ `,s([ti()],u.prototype,"error",1);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 ri}from"lit";var w=class extends u{render(){return ri``}calculate(){throw new Error("Not implemented")}};var je=class extends w{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 w{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 ii}from"lit";var Ge=class extends w{render(){return ii``}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 si}from"lit/decorators.js";import{html as oi}from"lit";var pe=class extends u{constructor(){super(...arguments);this.mult=0;this.render=()=>oi`<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([si()],pe.prototype,"mult",2);customElements.define("qti-product",pe);import{html as ni}from"lit";var Je=class extends w{render(){return ni``}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 ai}from"lit/decorators.js";var R=class{static compareSingleValues(i,e,t){switch(t){case"identifier":case"string":return i===e;case"integer":{let r=parseInt(i,10),o=parseInt(e,10);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`Cannot convert ${i} and/or ${e} to int.`);break}case"float":{let r=parseFloat(i),o=parseFloat(e);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`couldn't convert ${i} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=i.split(" ").sort(),o=e.split(" ").sort();if(r.length===2&&o.length===2)return t==="pair"&&(r.sort(),o.sort()),r.join(" ")===o.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${i} 2: ${e}`);break}}return!1}};var de=class extends u{constructor(){super(...arguments);this.toleranceMode="exact"}calculate(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):R.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};s([ai({type:String})],de.prototype,"toleranceMode",2);customElements.define("qti-equal",de);import{property as li}from"lit/decorators.js";var ue=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([li({type:String})],ue.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",ue);import{property as ci}from"lit/decorators.js";var me=class extends u{constructor(){super(...arguments);this.baseType="string"}calculate(){return this.textContent}};s([ci({type:String,attribute:"base-type"})],me.prototype,"baseType",2);customElements.define("qti-base-value",me);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 pi}from"lit";var Qe=class extends u{render(){return pi``}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 di}from"lit";var tt=class extends u{render(){return di`${super.render()}`}calculate(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",tt);import{property as ui}from"lit/decorators.js";var he=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([ui({type:String})],he.prototype,"identifier",2);customElements.define("qti-map-response",he);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):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",rt);import{html as mi}from"lit";var it=class extends u{render(){return mi``}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 hi,html as Ht}from"lit";import{property as fi,state as bi}from"lit/decorators.js";var J=class extends hi{constructor(){super();this.value="";this.closest("qti-assessment-item").addEventListener("qti-response-processing",()=>{this.value=this.calculate()})}render(){return Ht`${Array.isArray(this.value)?this.value.map(e=>Ht`${e}`):this.value}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.identifier;return e.getVariable(t).value}};s([fi({type:String})],J.prototype,"identifier",2),s([bi()],J.prototype,"value",2);customElements.define("qti-printed-variable",J);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 gi}from"lit";var Y=class extends gi{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 vi,html as Ot}from"lit";var lt=class extends vi{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 Ot`<slot></slot>${this._errorMessage&&Ot`<div style="color:red">
160
160
  <h1>Error</h1>
161
161
  ${this._errorMessage}
162
162
  </div>`}`}};customElements.define("qti-portable-custom-interaction",lt);import{LitElement as xi,css as Ei,html as It}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 yi}from"lit/decorators.js";var $t=(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([yi({type:Boolean,reflect:!0})],t.prototype,"disabled",2),t};var Pt=(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 Pt($t(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 qi}from"lit/decorators.js";var Z=class extends L(xi,"qti-simple-associable-choice",!0,".dl"){render(){return It` <slot name="prompt"></slot>
@@ -197,7 +197,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
197
197
  align-items: flex-start;
198
198
  flex: 1;
199
199
  }
200
- `];customElements.define("qti-gap-match-interaction",be);import{css as Ai,svg as Ft,html as wi}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,jt)=>{if(mt%2===1){let Kt=b.pop();b[b.length]={x:Kt,y:jt[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 Ti,queryAssignedElements as Ri,state as ct}from"lit/decorators.js";import{repeat as Li}from"lit/directives/repeat.js";import{ifDefined as Xt}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 wi`<slot name="prompt"></slot>
200
+ `];customElements.define("qti-gap-match-interaction",be);import{css as Ai,svg as Ft,html as Ti}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,jt)=>{if(mt%2===1){let Kt=b.pop();b[b.length]={x:Kt,y:jt[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 wi,queryAssignedElements as Ri,state as ct}from"lit/decorators.js";import{repeat as Li}from"lit/directives/repeat.js";import{ifDefined as Xt}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 Ti`<slot name="prompt"></slot>
201
201
  <line-container>
202
202
  <svg
203
203
  width=${Xt((e=this.grImage[0])==null?void 0:e.width)}
@@ -250,7 +250,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
250
250
  top: 0px;
251
251
  left: 0px;
252
252
  }
253
- `],s([ct()],M.prototype,"_lines",2),s([ct()],M.prototype,"startCoord",2),s([ct()],M.prototype,"mouseCoord",2),s([Ti("svg")],M.prototype,"svgContainer",2),s([Ri({selector:"img"})],M.prototype,"grImage",2);customElements.define("qti-graphic-associate-interaction",M);import{css as Si,html as Mi,LitElement as Vi}from"lit";var ge=class extends L(Vi,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return Mi` <slot></slot>
253
+ `],s([ct()],M.prototype,"_lines",2),s([ct()],M.prototype,"startCoord",2),s([ct()],M.prototype,"mouseCoord",2),s([wi("svg")],M.prototype,"svgContainer",2),s([Ri({selector:"img"})],M.prototype,"grImage",2);customElements.define("qti-graphic-associate-interaction",M);import{css as Si,html as Mi,LitElement as Vi}from"lit";var ge=class extends L(Vi,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return Mi` <slot></slot>
254
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=Si`
255
255
  :host {
256
256
  display: inline-block;
@@ -260,12 +260,12 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
260
260
  display: flex;
261
261
  gap: 1rem;
262
262
  }
263
- `;customElements.define("qti-graphic-gap-match-interaction",ge);import{css as Ni,html as Di}from"lit";var ve=class extends v{render(){return Di`
263
+ `;customElements.define("qti-graphic-gap-match-interaction",ge);import{css as Di,html as Ni}from"lit";var ve=class extends v{render(){return Ni`
264
264
  <slot name="prompt"></slot>
265
265
  <!-- slot for the prompt -->
266
266
  <slot></slot>
267
267
  <!-- slot for the image and hotspots -->
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=[Ni`
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=[Di`
269
269
  slot:not([name='prompt']) {
270
270
  position: relative; /* qti-hotspot-choice relative to the slot */
271
271
  display: block;
@@ -305,7 +305,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
305
305
  <td>${e.innerHTML}</td>
306
306
  ${this.cols.map((t,r)=>Q`<td><input type="checkbox" /></td>`)}
307
307
  </tr>`)}
308
- </table>`:Q`<slot name="prompt"></slot> <slot></slot>`}};xe.styles=[];customElements.define("qti-match-interaction",xe);import{css as Fi,html as Xi}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 Xi` <slot name="prompt"></slot>
308
+ </table>`:Q`<slot name="prompt"></slot> <slot></slot>`}};xe.styles=[];customElements.define("qti-match-interaction",xe);import{css as Fi,html as Xi}from"lit";var Ee=class extends m{constructor(){super()}reset(){}validate(){return!0}set response(e){}static get properties(){return N(C({},m.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return Xi` <slot name="prompt"></slot>
309
309
  <slot></slot>`}connectedCallback(){super.connectedCallback()}};Ee.styles=[Fi``];customElements.define("qti-media-interaction",Ee);import{css as Yi,html as Yt,LitElement as Ui}from"lit";import{property as Bi}from"lit/decorators.js";var z=class extends L(Ui,"qti-simple-choice",!0,"drop-list"){render(){return Yt` <slot name="prompt"> </slot>
310
310
  <div part="container">
311
311
  <slot part="drags"> </slot>
@@ -376,7 +376,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
376
376
  display: inline-block;
377
377
  position: relative;
378
378
  }
379
- `];customElements.define("qti-position-object-stage",Ce);import{css as Zi,html as Ut}from"lit";import{property as Bt,state as Qi}from"lit/decorators.js";import{repeat as es}from"lit/directives/repeat.js";import{styleMap as ts}from"lit/directives/style-map.js";var N=class extends m{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return Ut` <slot name="prompt"></slot>
379
+ `];customElements.define("qti-position-object-stage",Ce);import{css as Zi,html as Ut}from"lit";import{property as Bt,state as Qi}from"lit/decorators.js";import{repeat as es}from"lit/directives/repeat.js";import{styleMap as ts}from"lit/directives/style-map.js";var D=class extends m{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return Ut` <slot name="prompt"></slot>
380
380
  <point-container>
381
381
  ${es(this._points,e=>e,(e,t)=>Ut`
382
382
  <button
@@ -386,7 +386,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
386
386
  ></button>
387
387
  `)}
388
388
  <slot></slot>
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=[Zi`
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()}};D.styles=[Zi`
390
390
  host() {
391
391
  display: block;
392
392
  }
@@ -394,7 +394,7 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
394
394
  display: block;
395
395
  position: relative;
396
396
  }
397
- `],s([Bt({type:Number,attribute:"max-choices"})],N.prototype,"maxChoices",2),s([Bt({type:Number,attribute:"min-choices"})],N.prototype,"minChoices",2),s([Qi()],N.prototype,"_points",2);customElements.define("qti-select-point-interaction",N);import{css as rs,html as _e,nothing as dt}from"lit";import{property as j,query as zt}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>
397
+ `],s([Bt({type:Number,attribute:"max-choices"})],D.prototype,"maxChoices",2),s([Bt({type:Number,attribute:"min-choices"})],D.prototype,"minChoices",2),s([Qi()],D.prototype,"_points",2);customElements.define("qti-select-point-interaction",D);import{css as rs,html as _e,nothing as dt}from"lit";import{property as j,query as zt}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>
398
398
  <div id="slider" part="slider">
399
399
  ${this.csLive.getPropertyValue("--show-bounds")=="true"?_e`<div id="bounds" part="bounds">
400
400
  <div>${this._min}</div>
@@ -410,10 +410,10 @@ import{a as ft}from"../chunk-M7QOVOG6.js";import{a as ht}from"../chunk-5GG2XAUT.
410
410
  :host {
411
411
  position: absolute;
412
412
  }
413
- `;customElements.define("qti-associable-hotspot",Ae);import{LitElement as cs}from"lit";import{property as ps}from"lit/decorators.js";var we=class extends cs{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};s([ps({type:Number,reflect:!0})],we.prototype,"tabindex",2);customElements.define("qti-gap-img",we);import{html as ds,LitElement as us}from"lit";import{property as ms}from"lit/decorators.js";var Te=class extends us{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return ds`<slot></slot>`}};s([ms({type:Number,reflect:!0})],Te.prototype,"tabindex",2);customElements.define("qti-gap-text",Te);import{html as hs,LitElement as fs}from"lit";import{property as bs}from"lit/decorators.js";var Re=class extends fs{constructor(){super(...arguments);this.tabindex=0}render(){return hs` <slot name="qti-gap-text"></slot>`}};s([bs({type:Number,reflect:!0})],Re.prototype,"tabindex",2);customElements.define("qti-gap",Re);import{css as gs}from"lit";import{property as vs}from"lit/decorators.js";var ee=class extends y{};ee.styles=gs`
413
+ `;customElements.define("qti-associable-hotspot",Ae);import{LitElement as cs}from"lit";import{property as ps}from"lit/decorators.js";var Te=class extends cs{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};s([ps({type:Number,reflect:!0})],Te.prototype,"tabindex",2);customElements.define("qti-gap-img",Te);import{html as ds,LitElement as us}from"lit";import{property as ms}from"lit/decorators.js";var we=class extends us{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return ds`<slot></slot>`}};s([ms({type:Number,reflect:!0})],we.prototype,"tabindex",2);customElements.define("qti-gap-text",we);import{html as hs,LitElement as fs}from"lit";import{property as bs}from"lit/decorators.js";var Re=class extends fs{constructor(){super(...arguments);this.tabindex=0}render(){return hs` <slot name="qti-gap-text"></slot>`}};s([bs({type:Number,reflect:!0})],Re.prototype,"tabindex",2);customElements.define("qti-gap",Re);import{css as gs}from"lit";import{property as vs}from"lit/decorators.js";var ee=class extends y{};ee.styles=gs`
414
414
  :host {
415
415
  position: absolute;
416
416
  }
417
417
  `,s([vs({attribute:"aria-ordervalue",type:Number,reflect:!0})],ee.prototype,"order",2);customElements.define("qti-hotspot-choice",ee);import{customElement as ys}from"lit/decorators.js";import{html as xs}from"lit";var Le=class extends y{render(){return xs`<div part="ch"><div part="cha"></div></div>
418
418
  <slot></slot> `}};Le=s([ys("qti-hottext")],Le);import{LitElement as Es}from"lit";var ut=class extends Es{};customElements.define("qti-inline-choice",ut);import{customElement as qs}from"lit/decorators.js";import{html as Cs}from"lit";var Se=class extends y{render(){return Cs`<div part="ch"><div part="cha"></div></div>
419
- <slot></slot> `}};Se=s([qs("qti-simple-choice")],Se);export{kt as Events,O as OutcomeVariable,J as QtPrintedVariable,Ge as QtiAnd,k as QtiAssessmentItem,Ae as QtiAssociableHotspot,Z as QtiAssociateInteraction,me as QtiBaseValue,y as QtiChoice,_t as QtiChoiceElementSelected,F as QtiChoiceInteraction,re as QtiCompanionMaterialsInfo,Ze as QtiContains,Qe as QtiCorrect,ke as QtiEndAttemptInteraction,de as QtiEqual,ue as QtiEqualRounded,u as QtiExpression,w as QtiExtendedTextInteraction,Pe as QtiFeedbackBlock,ne as QtiFeedbackInline,Re as QtiGap,we as QtiGapImg,be as QtiGapMatchInteraction,Te as QtiGapText,M as QtiGraphicAssociateInteraction,ge as QtiGraphicGapMatchInteraction,ve as QtiGraphicOrderInteraction,ze as QtiGt,je as QtiGte,ee as QtiHotspotChoice,ye as QtiHotspotInteraction,Le as QtiHottext,Xe as QtiHottextInteraction,ut as QtiInlineChoice,ce as QtiInlineChoiceInteraction,gt as QtiInteractionChanged,Ct as QtiInteractionResponse,et as QtiIsNull,qt as QtiLooseChoice,Ke as QtiLt,We as QtiLte,he 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,pe 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,se as qtiContentBody,A as qtiRubricBlock};
419
+ <slot></slot> `}};Se=s([qs("qti-simple-choice")],Se);export{kt as Events,O as OutcomeVariable,J as QtPrintedVariable,Ge as QtiAnd,k as QtiAssessmentItem,Ae as QtiAssociableHotspot,Z as QtiAssociateInteraction,me as QtiBaseValue,y as QtiChoice,_t as QtiChoiceElementSelected,F as QtiChoiceInteraction,re as QtiCompanionMaterialsInfo,Ze as QtiContains,Qe as QtiCorrect,ke as QtiEndAttemptInteraction,de as QtiEqual,ue as QtiEqualRounded,u as QtiExpression,T as QtiExtendedTextInteraction,Pe as QtiFeedbackBlock,ne as QtiFeedbackInline,Re as QtiGap,Te as QtiGapImg,be as QtiGapMatchInteraction,we as QtiGapText,M as QtiGraphicAssociateInteraction,ge as QtiGraphicGapMatchInteraction,ve as QtiGraphicOrderInteraction,ze as QtiGt,je as QtiGte,ee as QtiHotspotChoice,ye as QtiHotspotInteraction,Le as QtiHottext,Xe as QtiHottextInteraction,ut as QtiInlineChoice,ce as QtiInlineChoiceInteraction,gt as QtiInteractionChanged,Ct as QtiInteractionResponse,et as QtiIsNull,qt as QtiLooseChoice,Ke as QtiLt,We as QtiLte,he 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,pe as QtiProduct,Ne 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,D as QtiSelectPointInteraction,Ue as QtiSetOutcomeValue,pt as QtiSimpleAssociableChoice,Se as QtiSimpleChoice,x as QtiSliderInteraction,De as QtiStylesheet,_ as QtiTextEntryInteraction,it as QtiVariable,H as ResponseVariable,se as qtiContentBody,A as qtiRubricBlock};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkVI35S4EMcjs = require('../chunk-VI35S4EM.cjs');require('../chunk-GGEPFBR7.cjs');require('../chunk-3O4URV5U.cjs');require('../chunk-HOQW4KDA.cjs');exports.QtiItem = _chunkVI35S4EMcjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkXHNCXKJ6cjs = require('../chunk-XHNCXKJ6.cjs');require('../chunk-GGEPFBR7.cjs');require('../chunk-NT6UB5QT.cjs');require('../chunk-HOQW4KDA.cjs');exports.QtiItem = _chunkXHNCXKJ6cjs.a;
@@ -1,4 +1,3 @@
1
- export { Q as QtiItem } from '../qti-item-77742afa.js';
1
+ export { Q as QtiItem } from '../qti-item-395a9535.js';
2
2
  import 'lit-html';
3
3
  import 'lit';
4
- import '../qti-assessment-item-e8a67444.js';
@@ -1,4 +1,3 @@
1
- export { Q as QtiItem } from '../qti-item-77742afa.js';
1
+ export { Q as QtiItem } from '../qti-item-395a9535.js';
2
2
  import 'lit-html';
3
3
  import 'lit';
4
- import '../qti-assessment-item-e8a67444.js';
@@ -1 +1 @@
1
- import{a as o}from"../chunk-EHTDKAYF.js";import"../chunk-5GG2XAUT.js";import"../chunk-WFLR5TH7.js";import"../chunk-NMCIOGD2.js";export{o as QtiItem};
1
+ import{a as o}from"../chunk-WFE4NR22.js";import"../chunk-5GG2XAUT.js";import"../chunk-RGNNQ7CN.js";import"../chunk-NMCIOGD2.js";export{o as QtiItem};
@@ -0,0 +1,19 @@
1
+ import * as lit_html from 'lit-html';
2
+ import * as lit from 'lit';
3
+ import { LitElement } from 'lit';
4
+
5
+ declare class QtiItem extends LitElement {
6
+ itemLocation: string;
7
+ set audienceContext(context: {
8
+ view: 'author' | 'candidate' | 'proctor' | 'scorer' | 'testConstructor' | 'tutor';
9
+ });
10
+ private provider;
11
+ private _xml;
12
+ set xml(val: string);
13
+ get xml(): string;
14
+ static styles: lit.CSSResult;
15
+ connectedCallback(): void;
16
+ render: () => lit_html.TemplateResult<1>;
17
+ }
18
+
19
+ export { QtiItem as Q };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkVI35S4EMcjs = require('../chunk-VI35S4EM.cjs');require('../chunk-GGEPFBR7.cjs');require('../chunk-3O4URV5U.cjs');require('../chunk-HOQW4KDA.cjs');var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _react3 = require('@lit-labs/react');var c=_react3.createComponent.call(void 0, {tagName:"qti-item",react:_react2.default,elementClass:_chunkVI35S4EMcjs.a,events:{qtioutcomechanged:"qti-outcome-changed",qtiinteractionchanged:"qti-interaction-changed",qtiitemconnected:"qti-item-connected"}});exports.QtiItem = c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunkXHNCXKJ6cjs = require('../chunk-XHNCXKJ6.cjs');require('../chunk-GGEPFBR7.cjs');require('../chunk-NT6UB5QT.cjs');require('../chunk-HOQW4KDA.cjs');var _react = require('react'); var _react2 = _interopRequireDefault(_react);var _react3 = require('@lit-labs/react');var c=_react3.createComponent.call(void 0, {tagName:"qti-item",react:_react2.default,elementClass:_chunkXHNCXKJ6cjs.a,events:{"qti-outcome-changed":"qti-outcome-changed","qti-interaction-changed":"qti-interaction-changed","qti-item-connected":"qti-item-connected"}});exports.QtiItem = c;
@@ -1,7 +1,6 @@
1
1
  import React, { Ref } from 'react';
2
- import { Q as QtiItem$1 } from '../qti-item-77742afa.js';
3
- import { a as ResponseInteraction } from '../qti-assessment-item-e8a67444.js';
4
- import { O as OutcomeChangedDetails, b as InteractionChangedDetails } from '../qti-simple-choice-b4b79072.js';
2
+ import { Q as QtiItem$1 } from '../qti-item-395a9535.js';
3
+ import { h as OutcomeChangedDetails, j as InteractionChangedDetails, b as QtiAssessmentItem } from '../qti-simple-choice-6d581309.js';
5
4
  import 'lit-html';
6
5
  import 'lit';
7
6
  import 'lit-html/directives/ref';
@@ -9,21 +8,14 @@ import 'lit-html/directives/ref';
9
8
  interface QtiItemProps {
10
9
  ref?: Ref<QtiItem$1>;
11
10
  className?: string;
12
- responses?: ResponseInteraction[];
13
11
  xml: string;
14
- disabled?: boolean;
15
- qtiContext?: {
12
+ audienceContext?: {
16
13
  view: 'author' | 'candidate' | 'proctor' | 'scorer' | 'testConstructor' | 'tutor';
17
14
  };
18
- processResponse?: () => void;
19
- showCorrectResponse?: () => void;
20
- validateResponses?: () => boolean;
21
- resetInteractions?: () => void;
22
- qtioutcomechanged?: (e: CustomEvent<OutcomeChangedDetails>) => void;
23
- qtiinteractionchanged?: (e: CustomEvent<InteractionChangedDetails>) => void;
24
- qtiitemconnected?: (e: CustomEvent<{
25
- identifier: string;
26
- }>) => void;
15
+ 'item-location'?: string;
16
+ 'qti-outcome-changed'?: (e: CustomEvent<OutcomeChangedDetails>) => void;
17
+ 'qti-interaction-changed'?: (e: CustomEvent<InteractionChangedDetails>) => void;
18
+ 'qti-item-connected'?: (e: CustomEvent<QtiAssessmentItem>) => void;
27
19
  }
28
20
  declare const QtiItem: React.ForwardRefExoticComponent<QtiItemProps>;
29
21
 
@@ -1,7 +1,6 @@
1
1
  import React, { Ref } from 'react';
2
- import { Q as QtiItem$1 } from '../qti-item-77742afa.js';
3
- import { a as ResponseInteraction } from '../qti-assessment-item-e8a67444.js';
4
- import { O as OutcomeChangedDetails, b as InteractionChangedDetails } from '../qti-simple-choice-b4b79072.js';
2
+ import { Q as QtiItem$1 } from '../qti-item-395a9535.js';
3
+ import { h as OutcomeChangedDetails, j as InteractionChangedDetails, b as QtiAssessmentItem } from '../qti-simple-choice-6d581309.js';
5
4
  import 'lit-html';
6
5
  import 'lit';
7
6
  import 'lit-html/directives/ref';
@@ -9,21 +8,14 @@ import 'lit-html/directives/ref';
9
8
  interface QtiItemProps {
10
9
  ref?: Ref<QtiItem$1>;
11
10
  className?: string;
12
- responses?: ResponseInteraction[];
13
11
  xml: string;
14
- disabled?: boolean;
15
- qtiContext?: {
12
+ audienceContext?: {
16
13
  view: 'author' | 'candidate' | 'proctor' | 'scorer' | 'testConstructor' | 'tutor';
17
14
  };
18
- processResponse?: () => void;
19
- showCorrectResponse?: () => void;
20
- validateResponses?: () => boolean;
21
- resetInteractions?: () => void;
22
- qtioutcomechanged?: (e: CustomEvent<OutcomeChangedDetails>) => void;
23
- qtiinteractionchanged?: (e: CustomEvent<InteractionChangedDetails>) => void;
24
- qtiitemconnected?: (e: CustomEvent<{
25
- identifier: string;
26
- }>) => void;
15
+ 'item-location'?: string;
16
+ 'qti-outcome-changed'?: (e: CustomEvent<OutcomeChangedDetails>) => void;
17
+ 'qti-interaction-changed'?: (e: CustomEvent<InteractionChangedDetails>) => void;
18
+ 'qti-item-connected'?: (e: CustomEvent<QtiAssessmentItem>) => void;
27
19
  }
28
20
  declare const QtiItem: React.ForwardRefExoticComponent<QtiItemProps>;
29
21
 
@@ -1 +1 @@
1
- import{a as e}from"../chunk-EHTDKAYF.js";import"../chunk-5GG2XAUT.js";import"../chunk-WFLR5TH7.js";import"../chunk-NMCIOGD2.js";import t from"react";import{createComponent as o}from"@lit-labs/react";var c=o({tagName:"qti-item",react:t,elementClass:e,events:{qtioutcomechanged:"qti-outcome-changed",qtiinteractionchanged:"qti-interaction-changed",qtiitemconnected:"qti-item-connected"}});export{c as QtiItem};
1
+ import{a as t}from"../chunk-WFE4NR22.js";import"../chunk-5GG2XAUT.js";import"../chunk-RGNNQ7CN.js";import"../chunk-NMCIOGD2.js";import e from"react";import{createComponent as o}from"@lit-labs/react";var c=o({tagName:"qti-item",react:e,elementClass:t,events:{"qti-outcome-changed":"qti-outcome-changed","qti-interaction-changed":"qti-interaction-changed","qti-item-connected":"qti-item-connected"}});export{c as QtiItem};