@citolab/qti-components 6.0.19 → 6.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/audience-context-444478f4.d.ts +8 -0
  2. package/dist/chunk-3O4URV5U.cjs +1 -0
  3. package/dist/chunk-5GG2XAUT.js +1 -0
  4. package/dist/chunk-6RJ7J4AE.cjs +1 -0
  5. package/dist/{chunk-UD6XWG6V.js → chunk-GEVRCVN2.cjs} +7 -14
  6. package/dist/chunk-GGEPFBR7.cjs +1 -0
  7. package/dist/chunk-HOQW4KDA.cjs +1 -0
  8. package/dist/chunk-M7QOVOG6.js +1 -0
  9. package/dist/{chunk-FIJLDR56.js → chunk-YDFMBQT4.js} +6 -12
  10. package/dist/context/index.cjs +1 -0
  11. package/dist/context/index.d.cts +1 -0
  12. package/dist/context/index.d.ts +1 -1
  13. package/dist/context/index.js +1 -1
  14. package/dist/decorators/index.cjs +1 -0
  15. package/dist/decorators/index.d.cts +37 -0
  16. package/dist/decorators/index.js +1 -1
  17. package/dist/index.cjs +2889 -0
  18. package/dist/index.d.cts +1063 -0
  19. package/dist/index.d.ts +27 -16
  20. package/dist/index.js +79 -80
  21. package/dist/{qti-assessment-item-68bcc951.d.ts → qti-assessment-item-c1eb7de3.d.ts} +5 -5
  22. package/dist/qti-components/index.cjs +419 -0
  23. package/dist/qti-components/index.d.cts +560 -0
  24. package/dist/qti-components/index.d.ts +21 -12
  25. package/dist/qti-components/index.js +74 -68
  26. package/dist/qti-item/index.cjs +1 -0
  27. package/dist/qti-item/index.d.cts +4 -0
  28. package/dist/qti-item/index.d.ts +2 -2
  29. package/dist/qti-item/index.js +1 -1
  30. package/dist/{qti-item-8c26fa9e.d.ts → qti-item-e2edd87f.d.ts} +1 -1
  31. package/dist/qti-item-react/index.cjs +1 -0
  32. package/dist/qti-item-react/index.d.cts +30 -0
  33. package/dist/qti-item-react/index.d.ts +3 -3
  34. package/dist/qti-item-react/index.js +1 -1
  35. package/dist/{qti-simple-choice-ca9b86db.d.ts → qti-simple-choice-e28cfb34.d.ts} +6 -3
  36. package/dist/qti-transform/index.cjs +17 -0
  37. package/dist/qti-transform/index.d.cts +17 -0
  38. package/package.json +25 -15
  39. package/dist/chunk-HQKT4SJF.js +0 -1
  40. package/dist/chunk-RPGALUIV.js +0 -1
  41. package/dist/context-a957e50e.d.ts +0 -9
  42. package/dist/custom-elements.json +0 -6766
  43. package/dist/index.css +0 -2200
  44. package/dist/qti-assessment-item-f1fcf393.d.ts +0 -120
  45. package/dist/qti-item-e1fc6a70.d.ts +0 -30
  46. package/dist/qti-simple-choice-d1392d78.d.ts +0 -352
@@ -14,7 +14,7 @@ interface Calculate {
14
14
  }
15
15
  type float = number;
16
16
  type integer = number;
17
- type BaseType = 'boolean' | 'directedPair' | 'float' | 'integer' | 'string' | 'identifier' | 'pair';
17
+ type BaseType = 'boolean' | 'directedPair' | 'duration' | 'float' | 'integer' | 'string' | 'identifier' | 'pair';
18
18
  type Multiple = string | string[][];
19
19
  type Ordered = string | string[][];
20
20
  type Cardinality = 'multiple' | 'ordered' | 'single';
@@ -60,11 +60,11 @@ declare class ResponseVariable implements VariableDeclaration<string | string[]>
60
60
  set value(val: string | string[]);
61
61
  }
62
62
 
63
- declare class OutcomeVariable implements VariableDeclaration<number | string | undefined> {
63
+ declare class OutcomeVariable implements VariableDeclaration<number | string | string[] | undefined> {
64
64
  identifier: string;
65
65
  cardinality: Cardinality;
66
66
  baseType: BaseType;
67
- value: number | string | undefined;
67
+ value: number | string | string[] | undefined;
68
68
  }
69
69
 
70
70
  /**
@@ -102,7 +102,7 @@ declare class QtiAssessmentItem extends LitElement {
102
102
  set responses(myResponses: ResponseInteraction[]);
103
103
  resetInteractions(): void;
104
104
  validateResponses(): boolean;
105
- getVariableValue(identifier: string): string | string[] | number | null;
105
+ getVariable(identifier: string): VariableDeclaration<any>;
106
106
  getResponse(identifier: string): ResponseVariable | null;
107
107
  getOutcome(identifier: string): OutcomeVariable | null;
108
108
  private registerFeedbackElement;
@@ -110,7 +110,7 @@ declare class QtiAssessmentItem extends LitElement {
110
110
  private interactionResponse;
111
111
  private outcomeChanged;
112
112
  private showFeedback;
113
- setOutcomeValue(identifier: string, value: number): void;
113
+ setOutcomeValue(identifier: string, value: string | number): void;
114
114
  }
115
115
  declare global {
116
116
  interface HTMLElementTagNameMap {
@@ -0,0 +1,419 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk6RJ7J4AEcjs = require('../chunk-6RJ7J4AE.cjs');var _chunkGGEPFBR7cjs = require('../chunk-GGEPFBR7.cjs');var _chunk3O4URV5Ucjs = require('../chunk-3O4URV5U.cjs');var _chunkHOQW4KDAcjs = require('../chunk-HOQW4KDA.cjs');var bt={};var gt={};var vt={};var yt={};var xt={};var Et={};var qt={};var Ct={};var _t={};var kt={ON_OUTCOME_CHANGED:"qti-outcome-changed",ON_INTERACTION_CHANGED:"on-interaction-changed",ON_REGISTER_VARIABLE:"on-register-variable",ON_REGISTER_FEEDBACK:"on-register-feedback",ON_REGISTER_INTERACTION:"on-register-interaction",ON_REGISTER_CHOICE:"on-register-choice",ON_REGISTER_HOTSPOT:"on-register-hotspot",ON_LOOSE_CHOICE:"on-loose-choice",ON_INTERACTION_RESPONSE:"on-interaction-response",ON_DROPDOWN_SELECTED:"on-dropdown-selected",ON_CHOICE_ELEMENT_SELECTED:"choice-element-selected"};var H=class{constructor({mapping:i,correctResponse:e,cardinality:t,baseType:r,identifier:o}){this._basetype="string";this._mapping=i,this._correctResponse=e,this._cardinality=t,this._basetype=r,this._identifier=o}get mapping(){return this._mapping}get correctResponse(){return this._correctResponse}get cardinality(){return this._cardinality}get baseType(){return this._basetype}get identifier(){return this._identifier}get value(){return this._candidateResponse}set value(i){this._candidateResponse=i}};var O=class{constructor(){this.value=void 0}};var _decoratorsjs = require('lit/decorators.js');var _lit = require('lit');var k=class extends _lit.LitElement{constructor(){super();this.variables=[];this.feedbackElements=[];this.interactionElements=[];this._handleDisabledChange=(e,t)=>{this.interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this.interactionElements.forEach(r=>r.readonly=t);this.addEventListener("qti-register-variable",this._registerVariable),this.addEventListener("qti-register-feedback",this.registerFeedbackElement),this.addEventListener("qti-register-interaction",this.registerInteractionElement),this.addEventListener("qti-outcome-changed",this.outcomeChanged),this.addEventListener("qti-interaction-response",this.interactionResponse)}render(){return _lit.html`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-item-connected",{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}disconnectedCallback(){this.removeEventListener("qti-register-variable",this._registerVariable),this.removeEventListener("qti-register-feedback",this.registerFeedbackElement),this.removeEventListener("qti-register-interaction",this.registerInteractionElement),this.removeEventListener("qti-outcome-changed",this.outcomeChanged),this.removeEventListener("qti-interaction-response",this.interactionResponse)}_registerVariable(e){this.variables.push(e.detail.variable)}showCorrectResponse(){let e=this.variables.filter(t=>"correctResponse"in t);this.responses=e.map(t=>({responseIdentifier:t.identifier,response:t.correctResponse}))}processResponse(){let e=this.querySelector("qti-response-processing");return e?e.process?(e.process(),!0):(console.info("Client side response webcomponents not available"),!1):(console.info("Client side response processing template not available"),!1)}set responses(e){if(e)for(let t of e){let r=this.interactionElements.find(a=>a.getAttribute("response-identifier")===t.responseIdentifier),o=this.getResponse(t.responseIdentifier);o&&(o.value=t.response),r&&(r.response=t.response)}}resetInteractions(){this.interactionElements.forEach(e=>e.reset())}validateResponses(){let e=!0;return this.interactionElements.forEach(t=>{t.validate()||(e=!1)}),e}getVariable(e){let t=this.variables.find(r=>r.identifier===e);return t||(console.warn(`Variable with identifier ${e} was not found`),null)}getResponse(e){let t=this.variables.find(o=>o.identifier===e);return t instanceof H?t:null}getOutcome(e){let t=this.variables.find(r=>r.identifier===e);return t instanceof O?t:null}registerFeedbackElement(e){e.stopPropagation(),this.feedbackElements.push(e.detail)}registerInteractionElement(e){e.stopPropagation(),this.interactionElements.push(e.target)}interactionResponse(e){let t=e.detail,r=this.getResponse(t.responseIdentifier);r&&(r.value=t.response),e.stopImmediatePropagation();let o=this.getAttribute("identifier");o||console.warn("qti-assessment-item has no identifier specified"),this.dispatchEvent(new CustomEvent("qti-interaction-changed",{bubbles:!0,composed:!0,detail:{item:o,responseIdentifier:t.responseIdentifier,response:t.response}}))}outcomeChanged(e){this.showFeedback(e)}showFeedback(e){this.feedbackElements.forEach(t=>{t.checkShowFeedback(e.detail.outcomeIdentifier)})}setOutcomeValue(e,t){let r=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}r.cardinality==="single"?r.value=t:r.value.push(t),this.dispatchEvent(new CustomEvent("qti-outcome-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,outcomeIdentifier:e,value:t}}))}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean})],k.prototype,"disabled",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean})],k.prototype,"readonly",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],k.prototype,"title",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],k.prototype,"identifier",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "disabled",{waitUntilFirstUpdate:!0})],k.prototype,"_handleDisabledChange",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "readonly",{waitUntilFirstUpdate:!0})],k.prototype,"_handleReadonlyChange",2),k= exports.QtiAssessmentItem =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-assessment-item")],k);var Ne=class extends _lit.LitElement{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);var Rt=_lit.css`
2
+ :host {
3
+ display: block;
4
+ }
5
+ `;var $=class extends _lit.LitElement{render(){return _lit.html` <slot name="qti-rubric-block"></slot>
6
+ <slot></slot>`}};$.styles=Rt,$=_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-item-body")],$);var De=class extends _lit.LitElement{render(){return _lit.html` <slot></slot> `}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};customElements.define("qti-prompt",De);var _statichtmljs = require('lit/static-html.js');var nr={SPACE:32},y= exports.QtiChoice =class extends _lit.LitElement{constructor(){super(...arguments);this.tabindex=0;this.disabled=!1;this.readonly=!1;this.checked=!1}handleDisabledChange(e,t){t?(this.tabindex=void 0,this.blur()):this.tabIndex=0}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent("qti-register-choice",{bubbles:!0,cancelable:!1,composed:!0}))}disconnectedCallback(){this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent("qti-loose-choice",{bubbles:!0,cancelable:!1,composed:!0}))}reset(){this.checked=!1,this.disabled=!1}_onKeyUp(e){if(!e.altKey)switch(e.keyCode){case nr.SPACE:e.preventDefault(),this._toggleChecked();break;default:}}_onClick(){this._toggleChecked()}_toggleChecked(){this.disabled||this.readonly||(this.checked=!this.checked,this.dispatchEvent(new CustomEvent("qti-choice-element-selected",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier,checked:this.checked}})))}validateAllProps(){return!!this.getAttribute("identifier")}render(){return this.validateAllProps()||console.warn(`Invalid props for ${this.outerHTML}`,"missing identifier"),_statichtmljs.html` <slot></slot> `}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],y.prototype,"identifier",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0})],y.prototype,"tabindex",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean,attribute:"aria-disabled",converter:{toAttribute:n=>n}})],y.prototype,"disabled",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean,attribute:"aria-readonly",converter:{toAttribute:n=>n}})],y.prototype,"readonly",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean,attribute:"aria-checked",converter:{toAttribute:n=>n}})],y.prototype,"checked",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "disabled",{waitUntilFirstUpdate:!0})],y.prototype,"handleDisabledChange",1);var V=class extends _lit.LitElement{render(){return _lit.html``}};customElements.define("qti-variabledeclaration",V);var P=class extends V{connectedCallback(){super.connectedCallback();let e=new H({baseType:this.baseType,identifier:this.identifier,correctResponse:this.correctResponse,cardinality:this.cardinality||"single",mapping:this.mapping});this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}get correctResponse(){let e,t=this.querySelector("qti-correct-response");if(t){let r=t.querySelectorAll("qti-value");if(this.cardinality==="single"&&r.length>0)e=r[0].textContent,r[0].remove();else if(this.cardinality!=="single"){e=[];for(let o=0;o<r.length;o++)e.push(r[o].textContent),r[o].remove()}}return e}get mapping(){return this.querySelector("qti-mapping")}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"base-type"})],P.prototype,"baseType",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],P.prototype,"identifier",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],P.prototype,"cardinality",2);customElements.define("qti-response-declaration",P);var I=class extends V{get interpolationTable(){let e=this.querySelector("qti-interpolation-table");if(e){let t=new Map;for(let r of e.querySelectorAll("qti-interpolation-table-entry")){!r.getAttribute("source-value")&&r.getAttribute("target-value")&&console.error("source-value or target-value is missing in qti-interpolation-table-entry");let o=parseInt(r.getAttribute("source-value")),a=parseInt(r.getAttribute("target-value"));(isNaN(o)||isNaN(a))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),t.set(o,a)}}return null}connectedCallback(){super.connectedCallback();let e=new O;e.identifier=this.identifier,e.cardinality=this.cardinality,e.baseType=this.baseType,(e.cardinality==="multiple"||e.cardinality==="ordered")&&(e.value=[]);let t=Array.from(this.querySelectorAll("qti-default-value > qti-value")).map(r=>r.innerHTML);t.length>1&&(e.value=t),t.length===1&&(e.cardinality==="multiple"||e.cardinality==="ordered"?e.value=t:e.value=t[0]),t||(e.value=null),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"base-type"})],I.prototype,"baseType",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],I.prototype,"identifier",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],I.prototype,"cardinality",2);customElements.define("qti-outcome-declaration",I);var te=class extends _lit.LitElement{};te= exports.QtiCompanionMaterialsInfo =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-companion-materials-info")],te);var _context = require('@lit-labs/context');var R=class extends _lit.LitElement{constructor(){super(...arguments);this.logger=new (0, _context.ContextConsumer)(this,_chunkGGEPFBR7cjs.a,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 _lit.html`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};R.styles=_lit.css`
7
+ :host {
8
+ display: block;
9
+ }
10
+ `,_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],R.prototype,"id",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],R.prototype,"use",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],R.prototype,"view",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"class"})],R.prototype,"classNames",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "classNames",{waitUntilFirstUpdate:!0})],R.prototype,"handleclassNamesChange",1),R= exports.qtiRubricBlock =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-rubric-block")],R);var ie=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}};ie= exports.qtiContentBody =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-content-body")],ie);var E=class extends _lit.LitElement{constructor(){super();this.showHide="show",this.showFeedback(this.showHide==="hide")}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(e){var o;let t=this.closest("qti-assessment-item").getOutcome(e);if(this.outcomeIdentifier!==e||!t)return;let r=Array.isArray(t)?t.includes(this.identifier):this.identifier===((o=t==null?void 0:t.value)==null?void 0:o.toString());this.showFeedback(r)}showFeedback(e){this.showStatus=e?"on":"off"}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"show-hide"})],E.prototype,"showHide",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"outcome-identifier"})],E.prototype,"outcomeIdentifier",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],E.prototype,"identifier",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:!1})],E.prototype,"showStatus",2);var oe=class extends E{constructor(){super(...arguments);this.render=()=>_lit.html` <slot class="${this.showStatus}"></slot> `}};oe.styles=_lit.css`
11
+ .on {
12
+ display: inline-block;
13
+ }
14
+ .off {
15
+ display: none;
16
+ }
17
+ `;customElements.define("qti-feedback-inline",oe);var $e=class extends E{render(){return _lit.html`
18
+ <style>
19
+ .on {
20
+ display: inline-block;
21
+ }
22
+ .off {
23
+ display: none;
24
+ }
25
+ </style>
26
+ <div class="feedback ${this.showStatus}">
27
+ <slot></slot>
28
+ </div>
29
+ `}};customElements.define("qti-modal-feedback",$e);var Pe=class extends E{render(){return _lit.html`
30
+ <style>
31
+ .on {
32
+ display: inline-block;
33
+ }
34
+ .off {
35
+ display: none;
36
+ }
37
+ </style>
38
+ <div class="feedback ${this.showStatus}">
39
+ <slot></slot>
40
+ </div>
41
+ `}firstUpdated(i){this.checkShowFeedback(this.outcomeIdentifier)}};customElements.define("qti-feedback-block",Pe);var _ifdefinedjs = require('lit/directives/if-defined.js');var m=class extends _lit.LitElement{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}}))}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"response-identifier"})],m.prototype,"responseIdentifier",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean})],m.prototype,"disabled",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean})],m.prototype,"readonly",2);var _refjs = require('lit/directives/ref.js');var _=class extends m{constructor(){super(...arguments);this._value="";this._size=5;this.inputRef=_refjs.createRef.call(void 0, )}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[_lit.css`
42
+ :host {
43
+ display: inline-flex;
44
+ }
45
+ `]}render(){return _lit.html` <input
46
+ part="input"
47
+ spellcheck="false"
48
+ autocomplete="off"
49
+ @keydown="${e=>e.stopImmediatePropagation()}"
50
+ @keyup="${this.textChanged}"
51
+ @change="${this.textChanged}"
52
+ type="text"
53
+ placeholder="${_ifdefinedjs.ifDefined.call(void 0, this.placeholderText?this.placeholderText:void 0)}"
54
+ .value="${this._value}"
55
+ size="${this._size}"
56
+ pattern="${_ifdefinedjs.ifDefined.call(void 0, this.patternMask?this.patternMask:void 0)}"
57
+ ?disabled="${this.disabled}"
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")}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"expected-length"})],_.prototype,"expectedLength",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"pattern-mask"})],_.prototype,"patternMask",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"placeholder-text"})],_.prototype,"placeholderText",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],_.prototype,"_value",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],_.prototype,"_size",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"class"})],_.prototype,"classNames",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "classNames")],_.prototype,"handleclassNamesChange",1),_= exports.QtiTextEntryInteraction =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-text-entry-interaction")],_);var A=class extends m{constructor(){super(...arguments);this.textareaRef=_refjs.createRef.call(void 0, );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[_lit.css`
60
+ /* PK: display host as block, else design will be collapsed */
61
+ :host {
62
+ display: block;
63
+ }
64
+ textarea {
65
+ width: 100%;
66
+ height: 100%;
67
+ border: 0;
68
+ }
69
+ `]}render(){return _lit.html`<textarea
70
+ part="textarea"
71
+ ${_refjs.ref.call(void 0, this.textareaRef)}
72
+ spellcheck="false"
73
+ autocomplete="off"
74
+ @keydown="${e=>e.stopImmediatePropagation()}"
75
+ @keyup="${this.textChanged}"
76
+ @change="${this.textChanged}"
77
+ placeholder="${_ifdefinedjs.ifDefined.call(void 0, this.placeholderText?this.placeholderText:void 0)}"
78
+ maxlength="${_ifdefinedjs.ifDefined.call(void 0, this.expectedLength?this.expectedLength:void 0)}"
79
+ pattern="${_ifdefinedjs.ifDefined.call(void 0, this.patternMask?this.patternMask:void 0)}"
80
+ ?disabled="${this.disabled}"
81
+ ?readonly="${this.readonly}"
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")}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"expected-length"})],A.prototype,"expectedLength",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"pattern-mask"})],A.prototype,"patternMask",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"placeholder-text"})],A.prototype,"placeholderText",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],A.prototype,"_value",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"class"})],A.prototype,"classNames",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "classNames",{waitUntilFirstUpdate:!0})],A.prototype,"handleclassNamesChange",1),A= exports.QtiExtendedTextInteraction =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-extended-text-interaction")],A);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)}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"min-choices"})],v.prototype,"minChoices",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"max-choices"})],v.prototype,"maxChoices",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "disabled",{waitUntilFirstUpdate:!0})],v.prototype,"_handleDisabledChange",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "readonly",{waitUntilFirstUpdate:!0})],v.prototype,"_handleReadonlyChange",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "maxChoices",{waitUntilFirstUpdate:!0})],v.prototype,"_handleMaxChoicesChange",2);var Xe=class extends v{constructor(){super(...arguments);this.render=()=>_lit.html`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};customElements.define("qti-hottext-interaction",Xe);var le=class extends m{constructor(){super();this.options=[];this.addEventListener(kt.ON_DROPDOWN_SELECTED,this.choiceSelected);let e=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:"select",value:"",selected:!1},...e.map(t=>({textContent:t.innerHTML,value:t.getAttribute("identifier"),selected:!1}))]}static get properties(){return _chunkHOQW4KDAcjs.b.call(void 0, _chunkHOQW4KDAcjs.a.call(void 0, {},m.properties),{options:{type:Array,value:[],attribute:!1}})}connectedCallback(){super.connectedCallback()}static get styles(){return[_lit.css`
84
+ :host {
85
+ display: inline-block;
86
+ }
87
+ `]}render(){return _lit.html` <select
88
+ part="select"
89
+ @change="${this.choiceSelected}"
90
+ ?disabled="${this.disabled}"
91
+ ?readonly="${this.readonly}"
92
+ >
93
+ ${this.options.map(e=>_lit.html` <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)=>_chunkHOQW4KDAcjs.b.call(void 0, _chunkHOQW4KDAcjs.a.call(void 0, {},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=>_chunkHOQW4KDAcjs.b.call(void 0, _chunkHOQW4KDAcjs.a.call(void 0, {},r),{selected:r.value===t})),this.saveResponse(t)}};le.inputWidthClass=["","qti-input-width-2","qti-input-width-1","qti-input-width-3","qti-input-width-4","qti-input-width-6","qti-input-width-10","qti-input-width-15","qti-input-width-20","qti-input-width-72"];customElements.define("qti-inline-choice-interaction",le);var St=_lit.css`
95
+ :host {
96
+ display: flex;
97
+ flex-direction: column;
98
+ align-items: flex-start;
99
+ }
100
+ `;var F=class extends v{constructor(){super(...arguments);this.render=()=>_lit.html` <slot name="prompt"></slot><slot></slot>`}};F.styles=St,_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],F.prototype,"orientation",2),F= exports.QtiChoiceInteraction =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-choice-interaction")],F);var Mt=`<qti-response-processing>
101
+ <qti-response-condition>
102
+ <qti-response-if>
103
+ <qti-match>
104
+ <qti-variable identifier="RESPONSE"></qti-variable>
105
+ <qti-correct identifier="RESPONSE"></qti-correct>
106
+ </qti-match>
107
+ <qti-set-outcome-value identifier="SCORE">
108
+ <qti-base-value base-type="float">1</qti-base-value>
109
+ </qti-set-outcome-value>
110
+ </qti-response-if>
111
+ <qti-response-else>
112
+ <qti-set-outcome-value identifier="SCORE">
113
+ <qti-base-value base-type="float">0</qti-base-value>
114
+ </qti-set-outcome-value>
115
+ </qti-response-else>
116
+ </qti-response-condition>
117
+ </qti-response-processing>`,Vt=`<qti-response-processing>
118
+ <qti-response-condition>
119
+ <qti-response-if>
120
+ <qti-is-null>
121
+ <qti-variable identifier="RESPONSE"></qti-variable>
122
+ </qti-is-null>
123
+ <qti-set-outcome-value identifier="SCORE">
124
+ <qti-base-value base-type="float">0.0</qti-base-value>
125
+ </qti-set-outcome-value>
126
+ </qti-response-if>
127
+ <qti-response-else>
128
+ <qti-set-outcome-value identifier="SCORE">
129
+ <qti-map-response identifier="RESPONSE"> </qti-map-response>
130
+ </qti-set-outcome-value>
131
+ </qti-response-else>
132
+ </qti-response-condition>
133
+ </qti-response-processing>`,Nt=`<qti-response-processing>
134
+ <qti-response-condition>
135
+ <qti-response-if>
136
+ <qti-is-null>
137
+ <qti-variable identifier="RESPONSE"></qti-variable>
138
+ </qti-is-null>
139
+ <qti-set-outcome-value identifier="SCORE">
140
+ <qti-base-value base-type="float">0</qti-base-value>
141
+ </qti-set-outcome-value>
142
+ </qti-response-if>
143
+ <qti-response-else>
144
+ <qti-set-outcome-value identifier="SCORE">
145
+ <qti-map-response-point identifier="RESPONSE"></qti-map-response-point>
146
+ </qti-set-outcome-value>
147
+ </qti-response-else>
148
+ </qti-response-condition>
149
+ </qti-response-processing>`;var X=class extends _lit.LitElement{render(){return _lit.html`<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= exports.QtiResponseProcessing =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-response-processing")],X);var S=class extends _lit.LitElement{render(){return _lit.html``}process(){throw new Error("Not implemented")}};S= exports.QtiRule =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-rule")],S);var Ye=class extends S{render(){return _lit.html`<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);var W=class extends _lit.LitElement{static get properties(){return{debugCalculateResult:{type:Object}}}render(){return _lit.html` <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 _lit.html`${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);var Be=class extends G{render(){return _lit.html`${super.render()}`}};customElements.define("qti-response-else-if",Be);var u=class extends _lit.LitElement{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 _lit.html`${this._error.map(e=>_lit.html`<div role="alert">${e}</div>`)}`}calculate(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};u.styles=_lit.css`
150
+ [role='alert'] {
151
+ border: 1px solid red;
152
+ background: pink;
153
+ color: red;
154
+ padding: 0.5rem 0.25rem;
155
+ font-size: small;
156
+ border-radius: 5px;
157
+ margin-bottom: 3px;
158
+ }
159
+ `,_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],u.prototype,"error",1);customElements.define("qti-expression",u);var ze=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value>+t.value;console.error("unexpected baseType or cardinality in qti gt")}return console.error("unexpected number of children in qt"),null}};customElements.define("qti-gt",ze);var T=class extends u{render(){return _lit.html``}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);var Ge=class extends T{render(){return _lit.html``}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);var ce=class extends u{constructor(){super(...arguments);this.mult=0;this.render=()=>_lit.html`<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}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],ce.prototype,"mult",2);customElements.define("qti-product",ce);var Je=class extends T{render(){return _lit.html``}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);var w=class{static compareSingleValues(i,e,t){switch(t){case"identifier":case"string":return i===e;case"integer":{let r=parseInt(i,10),o=parseInt(e,10);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`Cannot convert ${i} and/or ${e} to int.`);break}case"float":{let r=parseFloat(i),o=parseFloat(e);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`couldn't convert ${i} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=i.split(" ").sort(),o=e.split(" ").sort();if(r.length===2&&o.length===2)return t==="pair"&&(r.sort(),o.sort()),r.join(" ")===o.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${i} 2: ${e}`);break}}return!1}};var pe=class extends u{constructor(){super(...arguments);this.toleranceMode="exact"}calculate(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):w.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],pe.prototype,"toleranceMode",2);customElements.define("qti-equal",pe);var de=class extends u{constructor(){super(...arguments);this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let t=parseInt(this.getAttribute("figures")||"0");return isNaN(t)?(console.error("figures attribute is not a number"),null):t<0?(console.error("figures attribute is negative"),null):t<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):t}calculate(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(this.roundingMode===null)return null;if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti equal"),!1;switch(e[0].baseType){case"integer":case"float":{let o=parseFloat(t.value),a=parseFloat(r.value);if(!isNaN(o)&&!isNaN(a))return this.roundingMode==="significantFigures"?o.toPrecision(this.figures)===a.toPrecision(this.figures):Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(a*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${o}, ${a}`);break}default:{console.error("values other than float and int cannot be used in equalRounded operator.");break}}return!1}return console.error("unexpected number of children in qti-equal-rounded"),null}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],de.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",de);var ue=class extends u{constructor(){super(...arguments);this.baseType="string"}calculate(){return this.textContent}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"base-type"})],ue.prototype,"baseType",2);customElements.define("qti-base-value",ue);var Ze=class extends u{calculate(){let i=this.getVariables();if(this.children.length===2){let e=i[0],t=i[1];if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="multiple"){let r=e.value,o=t.value;return r.filter(c=>o.includes(c)).length>0}else if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="single"){let r=e.value;return t.value.includes(r)}else console.error("unsupported baseType or cardinality in qti contains, only baseType: directedPair and cardinality: multiple is supported")}else console.error("unexpected number of children in qti contains");return!1}};customElements.define("qti-contains",Ze);var Qe=class extends u{render(){return _lit.html``}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);var tt=class extends u{render(){return _lit.html`${super.render()}`}calculate(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",tt);var me=class extends u{calculate(){let e=this.assessmentItem.getResponse(this.identifier);if(!e)return console.warn(`Response ${this.identifier} can not be found`),null;let t=e.mapping,r=Array.isArray(e.value)?e.value:[e.value],o=0;for(let a of r){let l=t.mapEntries.find(c=>w.compareSingleValues(c.mapKey,a,e.baseType));l==null||l.mappedValue==null?o+=t.defaultValue:o+=l.mappedValue}return t.lowerBound!=null&&(o=Math.max(t.lowerBound,o)),t.upperBound!=null&&(o=Math.min(t.upperBound,o)),o}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],me.prototype,"identifier",2);customElements.define("qti-map-response",me);var rt=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(t.cardinality==="single")return Array.isArray(e.value)||Array.isArray(t.value)?(console.error("unexpected cardinality in qti match"),!1):w.compareSingleValues(e.value.toString(),t.value.toString(),t.baseType);{if(!Array.isArray(e.value)||!Array.isArray(t.value))return console.error("unexpected cardinality in qti match"),!1;if(e.value.length!==t.value.length)return!1;let r=0;for(let o of t.value){if(t.cardinality==="ordered"){let a=e[r];if(!w.compareSingleValues(o,a,t.baseType))return!1}else{let a=null;for(let l of e.value)if(w.compareSingleValues(o,l,t.baseType)){a=l;break}if(a!==null)e.value.splice(e.value.indexOf(a),1);else return!1}r++}return!0}}return console.error("unexpected number of children in match"),null}};customElements.define("qti-match",rt);var it=class extends u{render(){return _lit.html``}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);var he=class extends _lit.LitElement{constructor(){super();this.value="";this.closest("qti-assessment-item").addEventListener("qti-outcome-changed",()=>{this.value=this.calculate()})}render(){return _lit.html`${this.value}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.getAttribute("identifier");return e.getVariable(t).value}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],he.prototype,"value",2);customElements.define("qti-printed-variable",he);var nt=class extends u{calculate(){let i=this.getVariables();this.children.length!==2&&(this.error="The member operator takes two sub-expressions");let[e,t]=i;if(e.baseType!==t.baseType&&(this.error="Which must both have the same base-type"),t.cardinality==="multiple"||t.cardinality==="ordered"||(this.error="and the second must be a multiple or ordered container"),(e.baseType==="float"||t.baseType==="float")&&(this.error="The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||t.baseType==="duration")&&(this.error="It must not be used on sub-expressions with a base-type of duration"),e.value===null||t.value===null)return null;let r=e.value;return t.value.includes(r)}};customElements.define("qti-member",nt);var Y=class extends _lit.LitElement{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")}))}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"default-value",type:Number})],Y.prototype,"defaultValue",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"lower-bound",type:Number})],Y.prototype,"lowerBound",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"upper-bound",type:Number})],Y.prototype,"upperBound",2);customElements.define("qti-mapping",Y);var lt=class extends _lit.LitElement{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=_chunkHOQW4KDAcjs.a.call(void 0, _chunkHOQW4KDAcjs.a.call(void 0, {},c),o(p));return c}};for(let l of t)return l.getAttribute("key")||(r=_chunkHOQW4KDAcjs.a.call(void 0, _chunkHOQW4KDAcjs.a.call(void 0, {},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 _lit.html`<slot></slot>${this._errorMessage&&_lit.html`<div style="color:red">
160
+ <h1>Error</h1>
161
+ ${this._errorMessage}
162
+ </div>`}`}};customElements.define("qti-portable-custom-interaction",lt);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}};var Ot=(n,i,e)=>{class t extends n{constructor(){super(...arguments);this.disabled=!1}firstUpdated(a){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(a);let l=Array.from(i?this.shadowRoot.querySelectorAll(e):this.querySelectorAll(e));this.dragoverHandler=this.dragoverHandler.bind(this),this.dragleaveHandler=this.dragleaveHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),l.forEach(c=>{c.setAttribute("dropzone","move"),c.addEventListener("dragleave",this.dragleaveHandler),this.attachHandler(c)});for(let c of l)this.observer=new MutationObserver(p=>{p.forEach(d=>{if(d.type==="attributes")switch(d.attributeName){case"disabled":{c.hasAttribute("disabled")?this.removeHandler(c):this.attachHandler(c);break}}})}),this.observer.observe(c,{attributes:!0})}attachHandler(a){a.addEventListener("dragover",this.dragoverHandler),a.addEventListener("drop",this.dropHandler)}removeHandler(a){a.removeEventListener("dragover",this.dragoverHandler),a.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var a;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(a=this.observer)==null||a.disconnect())}dragoverHandler(a){return a.preventDefault(),a.currentTarget.setAttribute("active",""),a.dataTransfer.dropEffect="move",!1}dropHandler(a){a.preventDefault();let l=a.currentTarget,c=this.querySelector(`[identifier=${a.dataTransfer.getData("text")}`),p=c||this.shadowRoot.querySelector(`[identifier=${a.dataTransfer.getData("text")}`);return l?p.parentElement.getAttribute("identifier")!==l.getAttribute("identifier")&&l.appendChild(p):console.error(`cannot find droppable, target: ${a.target?JSON.stringify(a.target):"null"}`),l.removeAttribute("active"),!1}dragleaveHandler(a){return a.preventDefault(),a.currentTarget.removeAttribute("active"),!1}}return _chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],t.prototype,"disabled",2),t};var $t=(n,i,e)=>{class t extends n{}return t};var L=(n,i,e,t)=>{class r extends $t(Ot(n,e,t),t,i){constructor(){super(...arguments);this.draggables=new Map;this.responseIdentifier="";this.configuration={copyStylesDragClone:!0,dragCanBePlacedBack:!0,dragOnClick:!1};this.disabled=!1;this.readonly=!1;this.minAssociations=1;this.maxAssociations=1}reInitDragAndDrop(l,c){if(this.classList.contains("qti-match-tabular"))return;l.filter(d=>!this.draggables||!this.draggables.get(d)).length>0&&(this.dragDropApi.addDraggables(l),l.forEach(d=>{this.draggables.set(d,{parent:d.parentElement,index:Array.from(d.parentNode.children).indexOf(d)}),d.setAttribute("qti-draggable","true"),d.addEventListener("dragstart",h=>{h.dataTransfer.setData("text",h.currentTarget.getAttribute("identifier")),d.setAttribute("dragging","")}),d.addEventListener("dragend",h=>{if(h.preventDefault(),d.removeAttribute("over"),d.removeAttribute("dragging"),h.dataTransfer.dropEffect==="none"&&this.configuration.dragCanBePlacedBack){let q=h.currentTarget,g=this.draggables.get(q),Me=g.index<g.parent.children.length?g.index:g.parent.children.length-1,b=g.parent,Ve=g.parent.children[Me];b.insertBefore(q,Ve),this.saveResponse(),this.checkMaxMatchAssociations()}h.dataTransfer.dropEffect==="move"&&(this.saveResponse(),this.checkMaxMatchAssociations())})}))}handleDragOptionsChanged(l,c){this.dragDropApi.copyStylesDragClone=c.copyStylesDragClone,this.dragDropApi.dragOnClick=c.dragOnClick}handleDisabledChange(l,c){this.draggables.forEach((p,d)=>{c?d.setAttribute("disabled",""):d.removeAttribute("disabled"),c?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}handleReadonlyChange(l,c){this.draggables.forEach((p,d)=>{c?d.setAttribute("readonly",""):d.removeAttribute("readonly"),c?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}firstUpdated(l){super.firstUpdated(l),this.droppables=Array.from(e?this.shadowRoot.querySelectorAll(t):this.querySelectorAll(t))}connectedCallback(){super.connectedCallback(),this.dragDropApi=new fe,this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,detail:this}))}reset(l=!0){this.draggables.forEach((c,p)=>{let d=c.parent.children,h=c.index<d.length?c.index:d.length;c.parent.insertBefore(p,d[h])}),l&&this.saveResponse()}checkMaxMatchAssociations(){this.droppables.forEach(l=>{let p=+(l.getAttribute("match-max")||1)<=(l.children.length||0);p?l.setAttribute("disabled",""):l.removeAttribute("disabled"),p?l.removeAttribute("dropzone"):l.setAttribute("dropzone","move")})}set response(l){this.classList.contains("qti-match-tabular")||(this.reset(!1),l!==null&&Array.isArray(l)&&l.forEach(c=>{let[p,...d]=c.split(" ").reverse();if(p){let h=this.droppables.find(q=>q.getAttribute("identifier")===p);d.forEach(q=>{let g=this.querySelector(`[identifier=${q}]`);h?g?(h.appendChild(g),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${q}`):console.error(`cannot find droppable with identifier: ${p}`)})}}))}validate(){let c=(e?Array.from(this.shadowRoot.querySelectorAll(t)):Array.from(this.querySelectorAll(t))).filter(p=>p.childElementCount>0).length;return this.minAssociations<=0||this.minAssociations<=c}saveResponse(){let l=this.droppables.map(c=>{var d;let p="";return((d=c.children)==null?void 0:d.length)>0&&(p+=Array.from(c.children).map(h=>h.getAttribute("identifier")).join(" ")+" "),p+=c.getAttribute("identifier"),p});this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:l}}))}}return _chunkHOQW4KDAcjs.c.call(void 0, [_chunk6RJ7J4AEcjs.a.call(void 0, i)],r.prototype,"reInitDragAndDrop",1),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"response-identifier"})],r.prototype,"responseIdentifier",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:!1,type:Object})],r.prototype,"configuration",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "configuration")],r.prototype,"handleDragOptionsChanged",1),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],r.prototype,"disabled",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "disabled",{waitUntilFirstUpdate:!0})],r.prototype,"handleDisabledChange",1),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],r.prototype,"readonly",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "readonly",{waitUntilFirstUpdate:!0})],r.prototype,"handleReadonlyChange",1),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0,attribute:"min-associations"})],r.prototype,"minAssociations",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0,attribute:"max-associations"})],r.prototype,"maxAssociations",2),r};var J=class extends L(_lit.LitElement,"qti-simple-associable-choice",!0,".dl"){render(){return _lit.html` <slot name="prompt"></slot>
163
+ <slot name="qti-simple-associable-choice"></slot>
164
+ ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,t)=>_lit.html`<div part="associables-container">
165
+ <div name="left${t}" part="drop-list" class="dl" identifier="droplist${t}_left"></div>
166
+ <div name="right${t}" part="drop-list" class="dl" identifier="droplist${t}_right"></div>
167
+ </div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};J.styles=_lit.css`
168
+ :host {
169
+ display: block; /* necessary to calculate scaling position */
170
+ }
171
+ slot[name='qti-simple-associable-choice'] {
172
+ display: flex;
173
+ flex-wrap: wrap;
174
+ gap: 0.5rem;
175
+ }
176
+ `,_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],J.prototype,"_childrenMap",2);customElements.define("qti-associate-interaction",J);var be=class extends L(_lit.LitElement,"qti-gap-text",!1,"qti-gap"){render(){return _lit.html` <slot part="drags" name="qti-gap-text"></slot>
177
+ <slot part="drops"></slot>`}};be.styles=[_lit.css`
178
+ :host {
179
+ display: flex;
180
+ align-items: flex-start;
181
+ gap: 0.5rem;
182
+ }
183
+ :host(.qti-choices-top) {
184
+ flex-direction: column;
185
+ }
186
+ :host(.qti-choices-bottom) {
187
+ flex-direction: column-reverse;
188
+ }
189
+ :host(.qti-choices-left) {
190
+ flex-direction: row;
191
+ }
192
+ :host(.qti-choices-right) {
193
+ flex-direction: row-reverse;
194
+ }
195
+ [part='drags'] {
196
+ display: flex;
197
+ align-items: flex-start;
198
+ flex: 1;
199
+ }
200
+ `];customElements.define("qti-gap-match-interaction",be);function B(n,i,e,t){switch(n){case"circle":{let[r,o,a]=i,l=r/e.width*100,c=o/e.height*100,p=a/e.width*100;t.style.left=l-p+"%",t.style.top=c-p+"%",t.style.width=t.style.height=4*p+"px",t.style.borderRadius="9999px"}break;case"rect":{let[r,o,a,l]=i,c=r/e.width*100,p=o/e.height*100,d=a/e.width*100,h=l/e.height*100;t.style.left=c+"%",t.style.top=p+"%",t.style.width=d-c+"%",t.style.height=h-p+"%"}break;case"poly":{let r=i.reduce((b,Ve,mt,zt)=>{if(mt%2===1){let jt=b.pop();b[b.length]={x:jt,y:zt[mt]}}else b.push(Ve);return b},[]),o=Math.min(...r.map(b=>b.x)),a=Math.max(...r.map(b=>b.x)),l=Math.min(...r.map(b=>b.y)),c=Math.max(...r.map(b=>b.y)),p=o/e.width*100,d=l/e.height*100,h=a/e.width*100,q=c/e.height*100;t.style.left=o/e.width*100+"%",t.style.top=l/e.height*100+"%",t.style.width=h-p+"%",t.style.height=q-d+"%";let Me=r.map(b=>({x:(b.x-o)/(a-o)*100,y:(b.y-l)/(c-l)*100})).map(b=>Math.round(b.x)+"% "+Math.round(b.y)+"%").join(",");t.style.clipPath=`polygon(${Me})`}break;default:break}}var _repeatjs = require('lit/directives/repeat.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 _lit.html`<slot name="prompt"></slot>
201
+ <line-container>
202
+ <svg
203
+ width=${_ifdefinedjs.ifDefined.call(void 0, (e=this.grImage[0])==null?void 0:e.width)}
204
+ height=${_ifdefinedjs.ifDefined.call(void 0, (t=this.grImage[0])==null?void 0:t.height)}
205
+ viewbox="0 0 ${(r=this.grImage[0])==null?void 0:r.width} ${(o=this.grImage[0])==null?void 0:o.height}"
206
+ >
207
+ ${_repeatjs.repeat.call(void 0, this._lines,a=>a,(a,l)=>_lit.svg`
208
+ <line
209
+ part="line"
210
+ x1=${parseInt(this.querySelector("[identifier="+a.split(" ")[0]+"]").style.left)}
211
+ y1=${parseInt(this.querySelector("[identifier="+a.split(" ")[0]+"]").style.top)}
212
+ x2=${parseInt(this.querySelector("[identifier="+a.split(" ")[1]+"]").style.left)}
213
+ y2=${parseInt(this.querySelector("[identifier="+a.split(" ")[1]+"]").style.top)}
214
+ stroke="red"
215
+ stroke-width="3"
216
+ @click=${c=>{c.stopPropagation(),this._lines=this._lines.filter((p,d)=>d!==l),this.saveResponse(this._lines)}}
217
+ />
218
+ `)}
219
+ ${this.startPoint&&_lit.svg`<line
220
+ part="point"
221
+ x1=${this.startCoord.x}
222
+ y1=${this.startCoord.y}
223
+ x2=${this.mouseCoord.x}
224
+ y2=${this.mouseCoord.y}
225
+ stroke="red"
226
+ stroke-width="3"
227
+ />`}
228
+ </svg>
229
+ <slot></slot>
230
+ </line-container>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,o=r.getAttribute("coords"),a=r.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));B(a,l,t,r)}firstUpdated(e){super.firstUpdated(e),this.hotspots=document.querySelectorAll("qti-associable-hotspot"),document.addEventListener("mousemove",t=>{this.mouseCoord={x:t.clientX-this.grImage[0].getBoundingClientRect().left,y:t.clientY-this.grImage[0].getBoundingClientRect().top}}),this.hotspots.forEach(t=>{t.style.left=t.getAttribute("coords").split(",")[0]+"px",t.style.top=t.getAttribute("coords").split(",")[1]+"px",t.addEventListener("click",r=>{this.startPoint?this.endPoint||(this.endPoint=r.target,this._lines=[...this._lines,this.startPoint.getAttribute("identifier")+" "+this.endPoint.getAttribute("identifier")],this.saveResponse(this._lines),this.startPoint=null,this.endPoint=null):(this.startPoint=r.target,this.startCoord={x:this.startPoint.getAttribute("coords").split(",")[0],y:this.startPoint.getAttribute("coords").split(",")[1]})})})}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};M.styles=[_lit.css`
231
+ slot:not([name='prompt']) {
232
+ // position: relative; /* qti-hotspot-choice relative to the slot */
233
+ display: block;
234
+ width: fit-content; /* hotspots not stretching further if image is at max size */
235
+ }
236
+ ::slotted(img) {
237
+ /* image not selectable anymore */
238
+ pointer-events: none;
239
+ user-select: none;
240
+ }
241
+ ::slotted(qti-associable-hotspot) {
242
+ transform: translate(-50%, -50%);
243
+ }
244
+ line-container {
245
+ display: block;
246
+ position: relative;
247
+ }
248
+ svg {
249
+ position: absolute;
250
+ top: 0px;
251
+ left: 0px;
252
+ }
253
+ `],_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],M.prototype,"_lines",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],M.prototype,"startCoord",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],M.prototype,"mouseCoord",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.query.call(void 0, "svg")],M.prototype,"svgContainer",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.queryAssignedElements.call(void 0, {selector:"img"})],M.prototype,"grImage",2);customElements.define("qti-graphic-associate-interaction",M);var ge=class extends L(_lit.LitElement,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return _lit.html` <slot></slot>
254
+ <slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),a=r.split(",").map(l=>parseInt(l));switch(o){case"circle":{let[l,c,p]=a;t.style.left=l-p+"px",t.style.top=c-p+"px",t.style.width=t.style.height=2*p+"px"}break;case"rect":{let[l,c,p,d]=a;t.style.left=l+"px",t.style.top=c+"px",t.style.width=p-l+"px",t.style.height=d-c+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};ge.styles=_lit.css`
255
+ :host {
256
+ display: inline-block;
257
+ position: relative;
258
+ }
259
+ slot[name='qti-gap-img'] {
260
+ display: flex;
261
+ gap: 1rem;
262
+ }
263
+ `;customElements.define("qti-graphic-gap-match-interaction",ge);var ve=class extends v{render(){return _lit.html`
264
+ <slot name="prompt"></slot>
265
+ <!-- slot for the prompt -->
266
+ <slot></slot>
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=[_lit.css`
269
+ slot:not([name='prompt']) {
270
+ position: relative; /* qti-hotspot-choice relative to the slot */
271
+ display: block;
272
+ width: fit-content; /* hotspots not stretching further if image is at max size */
273
+ }
274
+ ::slotted(img) {
275
+ /* image not selectable anymore */
276
+ pointer-events: none;
277
+ user-select: none;
278
+ }
279
+ `];customElements.define("qti-graphic-order-interaction",ve);var ye=class extends v{render(){return _lit.html`
280
+ <slot name="prompt"></slot>
281
+ <!-- slot for the prompt -->
282
+ <slot></slot>
283
+ <!-- slot for the image and hotspots -->
284
+ `}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),o=t.getAttribute("shape"),a=r.split(",").map(l=>parseInt(l));B(o,a,e,t)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};ye.styles=[_lit.css`
285
+ slot:not([name='prompt']) {
286
+ position: relative; /* qti-hotspot-choice relative to the slot */
287
+ display: block;
288
+ width: fit-content; /* hotspots not stretching further if image is at max size */
289
+ }
290
+ ::slotted(img) {
291
+ /* image not selectable anymore */
292
+ pointer-events: none;
293
+ user-select: none;
294
+ /* width:100%; */
295
+ }
296
+ `];customElements.define("qti-hotspot-interaction",ye);var pt=class extends _lit.LitElement{connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return _lit.html`
297
+ <slot></slot>
298
+ <slot name="qti-simple-associable-choice"></slot>
299
+ `}};customElements.define("qti-simple-associable-choice",pt);var xe=class extends L(_lit.LitElement,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){connectedCallback(){super.connectedCallback(),this.rows=Array.from(this.querySelectorAll("qti-simple-match-set:first-of-type qti-simple-associable-choice")),this.cols=Array.from(this.querySelectorAll("qti-simple-match-set:last-of-type qti-simple-associable-choice"))}render(){return this.classList.contains("qti-match-tabular")?_lit.html`<table>
300
+ <tr>
301
+ <td><slot name="prompt"></slot></td>
302
+ ${this.cols.map((e,t)=>_lit.html`<th>${e.innerHTML}</th>`)}
303
+ </tr>
304
+ ${this.rows.map(e=>_lit.html`<tr>
305
+ <td>${e.innerHTML}</td>
306
+ ${this.cols.map((t,r)=>_lit.html`<td><input type="checkbox" /></td>`)}
307
+ </tr>`)}
308
+ </table>`:_lit.html`<slot name="prompt"></slot> <slot></slot>`}};xe.styles=[];customElements.define("qti-match-interaction",xe);var Ee=class extends m{constructor(){super()}reset(){}validate(){return!0}set response(e){}static get properties(){return _chunkHOQW4KDAcjs.b.call(void 0, _chunkHOQW4KDAcjs.a.call(void 0, {},m.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return _lit.html` <slot name="prompt"></slot>
309
+ <slot></slot>`}connectedCallback(){super.connectedCallback()}};Ee.styles=[_lit.css``];customElements.define("qti-media-interaction",Ee);var z=class extends L(_lit.LitElement,"qti-simple-choice",!0,"drop-list"){render(){return _lit.html` <slot name="prompt"> </slot>
310
+ <div part="container">
311
+ <slot part="drags"> </slot>
312
+ <div part="drops">
313
+ ${Array.from(this.querySelectorAll("qti-simple-choice")).map((e,t)=>_lit.html`<drop-list part="drop-list" identifier="droplist${t}"></drop-list>`)}
314
+ </div>
315
+ </div>`}connectedCallback(){super.connectedCallback(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};z.layoutClass=["qti-choices-top","qti-choices-bottom","qti-choices-left","qti-choices-right"],z.styles=[_lit.css`
316
+ [part='drags'] {
317
+ display: flex;
318
+ align-items: flex-start;
319
+ flex: 1;
320
+ }
321
+
322
+ [part='drops'] {
323
+ flex: 1;
324
+ display: grid;
325
+ grid-auto-flow: column;
326
+ grid-auto-columns: 1fr;
327
+ }
328
+
329
+ :host([orientation='horizontal']) [part='drags'] {
330
+ flex-direction: row;
331
+ }
332
+ :host([orientation='horizontal']) [part='drops'] {
333
+ grid-auto-flow: column;
334
+ }
335
+ :host([orientation='vertical']) [part='drags'] {
336
+ flex-direction: column;
337
+ }
338
+ :host([orientation='vertical']) [part='drops'] {
339
+ grid-auto-flow: row;
340
+ }
341
+
342
+ [part='drop-list'] {
343
+ display: block;
344
+ flex: 1;
345
+ }
346
+
347
+ [part='container'] {
348
+ display: flex;
349
+ gap: 0.5rem;
350
+ }
351
+ :host(.qti-choices-top) [part='container'] {
352
+ flex-direction: column;
353
+ }
354
+ :host(.qti-choices-bottom) [part='container'] {
355
+ flex-direction: column-reverse;
356
+ }
357
+ :host(.qti-choices-left) [part='container'] {
358
+ flex-direction: row;
359
+ }
360
+ :host(.qti-choices-right) [part='container'] {
361
+ flex-direction: row-reverse;
362
+ }
363
+ `],_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],z.prototype,"orientation",2);customElements.define("qti-order-interaction",z);var qe=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}};qe.styles=[_lit.css`
364
+ :host {
365
+ display: block;
366
+ }
367
+ ::slotted(img) {
368
+ position: absolute;
369
+ cursor: move;
370
+ user-select: none;
371
+ left: 50%;
372
+ transform: translateX(-50%);
373
+ }
374
+ `];customElements.define("qti-position-object-interaction",qe);var Ce=class extends _lit.LitElement{constructor(){super();this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}render(){return _lit.html`<slot></slot>`}dragElementHandler(e){e.preventDefault();let t=e.clientX-this.startX,r=e.clientY-this.startY;this.dragElement.style.left=this.dragElement.offsetLeft+t+"px",this.dragElement.style.top=this.dragElement.offsetTop+r+"px",this.startX=e.clientX,this.startY=e.clientY}connectedCallback(){super.connectedCallback(),this.dragElement=this.querySelector("qti-position-object-interaction>img"),this.startX=0,this.startY=0,this.dragElement.addEventListener("mousedown",e=>{this.startX=e.clientX,this.startY=e.clientY,document.addEventListener("mousemove",this.dragElementHandler,!0)}),document.addEventListener("mouseup",this.removeMoveListener)}removeMoveListener(e){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};Ce.styles=[_lit.css`
375
+ :host {
376
+ display: inline-block;
377
+ position: relative;
378
+ }
379
+ `];customElements.define("qti-position-object-stage",Ce);var _stylemapjs = require('lit/directives/style-map.js');var N=class extends m{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return _lit.html` <slot name="prompt"></slot>
380
+ <point-container>
381
+ ${_repeatjs.repeat.call(void 0, this._points,e=>e,(e,t)=>_lit.html`
382
+ <button
383
+ part="point"
384
+ style=${_stylemapjs.styleMap.call(void 0, {position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
385
+ @click=${r=>{r.stopPropagation(),this._points=this._points.filter((o,a)=>a!==t),this.saveResponse(this._points)}}
386
+ ></button>
387
+ `)}
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=[_lit.css`
390
+ host() {
391
+ display: block;
392
+ }
393
+ point-container {
394
+ display: block;
395
+ position: relative;
396
+ }
397
+ `],_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"max-choices"})],N.prototype,"maxChoices",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"min-choices"})],N.prototype,"minChoices",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],N.prototype,"_points",2);customElements.define("qti-select-point-interaction",N);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()),_lit.html`<slot name="prompt"></slot>
398
+ <div id="slider" part="slider">
399
+ ${this.csLive.getPropertyValue("--show-bounds")=="true"?_lit.html`<div id="bounds" part="bounds">
400
+ <div>${this._min}</div>
401
+ <div>${this._max}</div>
402
+ </div>`:_lit.nothing}
403
+ ${this.csLive.getPropertyValue("--show-ticks")=="true"?_lit.html`<div id="ticks" part="ticks"></div>`:_lit.nothing}
404
+ <div id="rail" part="rail" @mousedown=${this._onMouseDown} @touchstart=${this._onTouchMove}>
405
+ <div id="knob" part="knob">
406
+ ${this.csLive.getPropertyValue("--show-value")=="true"?_lit.html`<div id="value" part="value">${this.value}</div>`:_lit.nothing}
407
+ </div>
408
+ </div>
409
+ </div>`}connectedCallback(){super.connectedCallback(),this.step=1,this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}_onTouchMove(e){let t=l=>{let{x:c}=this.getPositionFromEvent(l),p=c-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(p),l.stopPropagation()},r=()=>{document.removeEventListener("touchmove",t),document.removeEventListener("touchend",r),this.saveResponse(this.value.toString())};document.addEventListener("touchmove",t),document.addEventListener("touchend",r);let{x:o}=this.getPositionFromEvent(e),a=o-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(a),e.stopPropagation()}_onMouseDown(e){let t=a=>{let l=a.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(l),a.preventDefault(),a.stopPropagation()},r=()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),this.saveResponse(this.value.toString())};document.addEventListener("mousemove",t),document.addEventListener("mouseup",r);let o=e.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(o),e.preventDefault(),e.stopPropagation()}calculateValue(e){let t=this.min+(this.max-this.min)*e/this._rail.getBoundingClientRect().width,r=this.min+Math.round((t-this.min)/this._step)*this._step;this.value=r}getPositionFromEvent(e){let t;if(e.type=="touchstart"||e.type=="touchmove"||e.type=="touchend"||e.type=="touchcancel"){let r=typeof e.originalEvent=="undefined"?e:e.originalEvent,o=r.touches[0]||r.changedTouches[0];t={x:o.pageX,y:o.pageY}}else(e.type=="mousedown"||e.type=="mouseup"||e.type=="mousemove"||e.type=="mouseover"||e.type=="mouseout"||e.type=="mouseenter"||e.type=="mouseleave")&&(t={x:e.clientX,y:e.clientY});return t}};x.styles=[_lit.css``],_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.query.call(void 0, "#knob")],x.prototype,"_knob",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.query.call(void 0, "#rail")],x.prototype,"_rail",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number})],x.prototype,"value",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,attribute:"step-label"})],x.prototype,"stepLabel",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean})],x.prototype,"reverse",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"lower-bound"})],x.prototype,"min",1),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"upper-bound"})],x.prototype,"max",1),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"step"})],x.prototype,"step",1),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "disabled",{waitUntilFirstUpdate:!0})],x.prototype,"_handleDisabledChange",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk3O4URV5Ucjs.a.call(void 0, "readonly",{waitUntilFirstUpdate:!0})],x.prototype,"_handleReadonlyChange",2);customElements.define("qti-slider-interaction",x);var ke=class extends _lit.LitElement{render(){return _lit.html`<button @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.closest("qti-assessment-item").processResponse()}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],ke.prototype,"title",2);customElements.define("qti-end-attempt-interaction",ke);var Re=class extends _lit.LitElement{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return _lit.html` <slot name="qti-gap-img"></slot> `}};Re.styles=_lit.css`
410
+ :host {
411
+ position: absolute;
412
+ }
413
+ `;customElements.define("qti-associable-hotspot",Re);var Ae=class extends _lit.LitElement{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0})],Ae.prototype,"tabindex",2);customElements.define("qti-gap-img",Ae);var Te=class extends _lit.LitElement{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return _lit.html`<slot></slot>`}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0})],Te.prototype,"tabindex",2);customElements.define("qti-gap-text",Te);var we=class extends _lit.LitElement{constructor(){super(...arguments);this.tabindex=0}render(){return _lit.html` <slot name="qti-gap-text"></slot>`}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0})],we.prototype,"tabindex",2);customElements.define("qti-gap",we);var Q=class extends y{};Q.styles=_lit.css`
414
+ :host {
415
+ position: absolute;
416
+ }
417
+ `,_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"aria-ordervalue",type:Number,reflect:!0})],Q.prototype,"order",2);customElements.define("qti-hotspot-choice",Q);var Le=class extends y{render(){return _lit.html`<div part="ch"><div part="cha"></div></div>
418
+ <slot></slot> `}};Le= exports.QtiHottext =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-hottext")],Le);var ut=class extends _lit.LitElement{};customElements.define("qti-inline-choice",ut);var Se=class extends y{render(){return _lit.html`<div part="ch"><div part="cha"></div></div>
419
+ <slot></slot> `}};Se= exports.QtiSimpleChoice =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-simple-choice")],Se);exports.Events = kt; exports.OutcomeVariable = O; exports.QtPrintedVariable = he; exports.QtiAnd = Ge; exports.QtiAssessmentItem = k; exports.QtiAssociableHotspot = Re; exports.QtiAssociateInteraction = J; exports.QtiBaseValue = ue; exports.QtiChoice = y; exports.QtiChoiceElementSelected = _t; exports.QtiChoiceInteraction = F; exports.QtiCompanionMaterialsInfo = te; exports.QtiContains = Ze; exports.QtiCorrect = Qe; exports.QtiEndAttemptInteraction = ke; exports.QtiEqual = pe; exports.QtiEqualRounded = de; exports.QtiExpression = u; exports.QtiExtendedTextInteraction = A; exports.QtiFeedbackBlock = Pe; exports.QtiFeedbackInline = oe; exports.QtiGap = we; exports.QtiGapImg = Ae; exports.QtiGapMatchInteraction = be; exports.QtiGapText = Te; exports.QtiGraphicAssociateInteraction = M; exports.QtiGraphicGapMatchInteraction = ge; exports.QtiGraphicOrderInteraction = ve; exports.QtiGt = ze; exports.QtiGte = je; exports.QtiHotspotChoice = Q; exports.QtiHotspotInteraction = ye; exports.QtiHottext = Le; exports.QtiHottextInteraction = Xe; exports.QtiInlineChoice = ut; exports.QtiInlineChoiceInteraction = le; exports.QtiInteractionChanged = gt; exports.QtiInteractionResponse = Ct; exports.QtiIsNull = et; exports.QtiLooseChoice = qt; exports.QtiLt = Ke; exports.QtiLte = We; exports.QtiMapResponse = me; exports.QtiMapping = Y; exports.QtiMatch = rt; exports.QtiMatchInteraction = xe; exports.QtiMediaInteraction = Ee; exports.QtiMember = nt; exports.QtiModalFeedback = $e; exports.QtiMultiple = st; exports.QtiNot = tt; exports.QtiOr = Je; exports.QtiOrderInteraction = z; exports.QtiOrdered = ot; exports.QtiOutcomeChanged = bt; exports.QtiOutcomeDeclaration = I; exports.QtiPortableCustomInteraction = lt; exports.QtiPositionObjectStage = Ce; exports.QtiProduct = ce; exports.QtiPrompt = De; exports.QtiRegisterChoice = xt; exports.QtiRegisterHotspot = Et; exports.QtiRegisterInteraction = yt; exports.QtiRegisterVariable = vt; exports.QtiResponseCondition = Ye; exports.QtiResponseDeclaration = P; exports.QtiResponseElse = W; exports.QtiResponseElseIf = Be; exports.QtiResponseIf = G; exports.QtiResponseProcessing = X; exports.QtiRule = S; exports.QtiSPositionObjectInteraction = qe; exports.QtiSelectPointInteraction = N; exports.QtiSetOutcomeValue = Ue; exports.QtiSimpleAssociableChoice = pt; exports.QtiSimpleChoice = Se; exports.QtiSliderInteraction = x; exports.QtiStylesheet = Ne; exports.QtiTextEntryInteraction = _; exports.QtiVariable = it; exports.ResponseVariable = H; exports.qtiContentBody = ie; exports.qtiRubricBlock = R;