@citolab/qti-components 6.9.1-16 → 6.9.1-17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnPropertyDescriptor,Ls=Object.getOwnPropertyDescriptors;var kr=Object.getOwnPropertySymbols;var Hs=Object.prototype.hasOwnProperty,Ns=Object.prototype.propertyIsEnumerable;var Lr=(i,t,e)=>t in i?Hr(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,_=(i,t)=>{for(var e in t||(t={}))Hs.call(t,e)&&Lr(i,e,t[e]);if(kr)for(var e of kr(t))Ns.call(t,e)&&Lr(i,e,t[e]);return i},S=(i,t)=>Ms(i,Ls(t));var a=(i,t,e,r)=>{for(var s=r>1?void 0:r?ks(t,e):t,n=i.length-1,o;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&Hr(t,e,s),s};var re=class extends Event{constructor(t,e,r){super("context-request",{bubbles:!0,composed:!0}),this.context=t,this.callback=e,this.subscribe=r!=null?r:!1}};var xe=class{constructor(t,e,r,s){var n;if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(o,l)=>{this.unsubscribe&&(this.unsubscribe!==l&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=o,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(o,l)),this.unsubscribe=l},this.host=t,e.context!==void 0){let o=e;this.context=o.context,this.callback=o.callback,this.subscribe=(n=o.subscribe)!=null?n:!1}else this.context=e,this.callback=r,this.subscribe=s!=null?s:!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new re(this.context,this.t,this.subscribe))}};var ht=class{get value(){return this.o}set value(t){this.setValue(t)}setValue(t,e=!1){let r=e||!Object.is(t,this.o);this.o=t,r&&this.updateObservers()}constructor(t){this.subscriptions=new Map,this.updateObservers=()=>{for(let[e,{disposer:r}]of this.subscriptions)e(this.o,r)},t!==void 0&&(this.value=t)}addCallback(t,e,r){if(!r)return void t(this.value);this.subscriptions.has(t)||this.subscriptions.set(t,{disposer:()=>{this.subscriptions.delete(t)},consumerHost:e});let{disposer:s}=this.subscriptions.get(t);t(this.value,s)}clearCallbacks(){this.subscriptions.clear()}};var Xt=class extends Event{constructor(t){super("context-provider",{bubbles:!0,composed:!0}),this.context=t}},Ee=class extends ht{constructor(t,e,r){var s,n;super(e.context!==void 0?e.initialValue:r),this.onContextRequest=o=>{let l=o.composedPath()[0];o.context===this.context&&l!==this.host&&(o.stopPropagation(),this.addCallback(o.callback,l,o.subscribe))},this.onProviderRequest=o=>{let l=o.composedPath()[0];if(o.context!==this.context||l===this.host)return;let c=new Set;for(let[d,{consumerHost:h}]of this.subscriptions)c.has(d)||(c.add(d),h.dispatchEvent(new re(this.context,d,!0)));o.stopPropagation()},this.host=t,e.context!==void 0?this.context=e.context:this.context=e,this.attachListeners(),(n=(s=this.host).addController)==null||n.call(s,this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new Xt(this.context))}};function Yt({context:i}){return(t,e)=>{let r=new WeakMap;if(typeof e=="object")return e.addInitializer(function(){r.set(this,new Ee(this,{context:i}))}),{get(){return t.get.call(this)},set(s){var n;return(n=r.get(this))==null||n.setValue(s),t.set.call(this,s)},init(s){var n;return(n=r.get(this))==null||n.setValue(s),s}};{t.constructor.addInitializer(o=>{r.set(o,new Ee(o,{context:i}))});let s=Object.getOwnPropertyDescriptor(t,e),n;if(s===void 0){let o=new WeakMap;n={get(){return o.get(this)},set(l){r.get(this).setValue(l),o.set(this,l)},configurable:!0,enumerable:!0}}else{let o=s.set;n=S(_({},s),{set(l){r.get(this).setValue(l),o==null||o.call(this,l)}})}return void Object.defineProperty(t,e,n)}}}function J({context:i,subscribe:t}){return(e,r)=>{typeof r=="object"?r.addInitializer(function(){new xe(this,{context:i,callback:s=>{e.set.call(this,s)},subscribe:t})}):e.constructor.addInitializer(s=>{new xe(s,{context:i,callback:n=>{s[r]=n},subscribe:t})})}}var Nr=class{get shadowRoot(){return this.__host.__shadowRoot}constructor(t){this.ariaAtomic="",this.ariaAutoComplete="",this.ariaBraileLabel="",this.ariaBraileRoleDescription="",this.ariaBusy="",this.ariaChecked="",this.ariaColCount="",this.ariaColIndex="",this.ariaColSpan="",this.ariaCurrent="",this.ariaDescription="",this.ariaDisabled="",this.ariaExpanded="",this.ariaHasPopup="",this.ariaHidden="",this.ariaInvalid="",this.ariaKeyShortcuts="",this.ariaLabel="",this.ariaLevel="",this.ariaLive="",this.ariaModal="",this.ariaMultiLine="",this.ariaMultiSelectable="",this.ariaOrientation="",this.ariaPlaceholder="",this.ariaPosInSet="",this.ariaPressed="",this.ariaReadOnly="",this.ariaRequired="",this.ariaRoleDescription="",this.ariaRowCount="",this.ariaRowIndex="",this.ariaRowSpan="",this.ariaSelected="",this.ariaSetSize="",this.ariaSort="",this.ariaValueMax="",this.ariaValueMin="",this.ariaValueNow="",this.ariaValueText="",this.role="",this.form=null,this.labels=[],this.states=new Set,this.validationMessage="",this.validity={},this.willValidate=!0,this.__host=t}checkValidity(){return console.warn("`ElementInternals.checkValidity()` was called on the server.This method always returns true."),!0}reportValidity(){return!0}setFormValue(){}setValidity(){}};var Pr=new WeakMap,Le=i=>{let t=Pr.get(i);return t===void 0&&Pr.set(i,t=new Map),t},Vs=class{constructor(){this.__shadowRootMode=null,this.__shadowRoot=null,this.__internals=null}get attributes(){return Array.from(Le(this)).map(([t,e])=>({name:t,value:e}))}get shadowRoot(){return this.__shadowRootMode==="closed"?null:this.__shadowRoot}setAttribute(t,e){Le(this).set(t,String(e))}removeAttribute(t){Le(this).delete(t)}toggleAttribute(t,e){if(this.hasAttribute(t)){if(e===void 0||!e)return this.removeAttribute(t),!1}else return e===void 0||e?(this.setAttribute(t,""),!0):!1;return!0}hasAttribute(t){return Le(this).has(t)}attachShadow(t){let e={host:this};return this.__shadowRootMode=t.mode,t&&t.mode==="open"&&(this.__shadowRoot=e),e}attachInternals(){if(this.__internals!==null)throw new Error("Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals for the specified element was already attached.");let t=new Nr(this);return this.__internals=t,t}getAttribute(t){let e=Le(this).get(t);return e!=null?e:null}};var Ds=class extends Vs{},Vr=Ds;var Os=class{constructor(){this.__definitions=new Map}define(t,e){var r;if(this.__definitions.has(t))throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);this.__definitions.set(t,{ctor:e,observedAttributes:(r=e.observedAttributes)!=null?r:[]})}get(t){let e=this.__definitions.get(t);return e==null?void 0:e.ctor}},Us=Os;var Dr=new Us;var He=globalThis,mt=He.ShadowRoot&&(He.ShadyCSS===void 0||He.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,zt=Symbol(),Or=new WeakMap,Ne=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==zt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(mt&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=Or.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&Or.set(e,t))}return t}toString(){return this.cssText}},Ur=i=>new Ne(typeof i=="string"?i:i+"",void 0,zt),b=(i,...t)=>{let e=i.length===1?i[0]:t.reduce((r,s,n)=>r+(o=>{if(o._$cssResult$===!0)return o.cssText;if(typeof o=="number")return o;throw Error("Value passed to 'css' function must be a 'css' function result: "+o+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+i[n+1],i[0]);return new Ne(e,i,zt)},Wt=(i,t)=>{if(mt)i.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),s=He.litNonce;s!==void 0&&r.setAttribute("nonce",s),r.textContent=e.cssText,i.appendChild(r)}},ft=mt||He.CSSStyleSheet===void 0?i=>i:i=>i instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return Ur(e)})(i):i;var{is:Is,defineProperty:Fs,getOwnPropertyDescriptor:Bs,getOwnPropertyNames:js,getOwnPropertySymbols:Xs,getPrototypeOf:Ys}=Object,O=globalThis,Br;(Br=O.customElements)!=null||(O.customElements=Dr);var Ir=O.trustedTypes,zs=Ir?Ir.emptyScript:"",Kt=O.reactiveElementPolyfillSupport,Pe=(i,t)=>i,Ve={toAttribute(i,t){switch(t){case Boolean:i=i?zs:null;break;case Object:case Array:i=i==null?i:JSON.stringify(i)}return i},fromAttribute(i,t){let e=i;switch(t){case Boolean:e=i!==null;break;case Number:e=i===null?null:Number(i);break;case Object:case Array:try{e=JSON.parse(i)}catch(r){e=null}}return e}},gt=(i,t)=>!Is(i,t),Fr={attribute:!0,type:String,converter:Ve,reflect:!1,hasChanged:gt},jr,Xr;(jr=Symbol.metadata)!=null||(Symbol.metadata=Symbol("metadata")),(Xr=O.litPropertyMetadata)!=null||(O.litPropertyMetadata=new WeakMap);var Yr,Z=class extends((Yr=globalThis.HTMLElement)!=null?Yr:Vr){static addInitializer(t){var e;this._$Ei(),((e=this.l)!=null?e:this.l=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=Fr){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),s=this.getPropertyDescriptor(t,r,e);s!==void 0&&Fs(this.prototype,t,s)}}static getPropertyDescriptor(t,e,r){var o;let{get:s,set:n}=(o=Bs(this.prototype,t))!=null?o:{get(){return this[e]},set(l){this[e]=l}};return{get(){return s==null?void 0:s.call(this)},set(l){let c=s==null?void 0:s.call(this);n.call(this,l),this.requestUpdate(t,c,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){var e;return(e=this.elementProperties.get(t))!=null?e:Fr}static _$Ei(){if(this.hasOwnProperty(Pe("elementProperties")))return;let t=Ys(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(Pe("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Pe("properties"))){let e=this.properties,r=[...js(e),...Xs(e)];for(let s of r)this.createProperty(s,e[s])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[r,s]of e)this.elementProperties.set(r,s)}this._$Eh=new Map;for(let[e,r]of this.elementProperties){let s=this._$Eu(e,r);s!==void 0&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let r=new Set(t.flat(1/0).reverse());for(let s of r)e.unshift(ft(s))}else t!==void 0&&e.push(ft(t));return e}static _$Eu(t,e){let r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var t;this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),(t=this.constructor.l)==null||t.forEach(e=>e(this))}addController(t){var e,r;((e=this._$EO)!=null?e:this._$EO=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&((r=t.hostConnected)==null||r.call(t))}removeController(t){var e;(e=this._$EO)==null||e.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){var e;let t=(e=this.shadowRoot)!=null?e:this.attachShadow(this.constructor.shadowRootOptions);return Wt(t,this.constructor.elementStyles),t}connectedCallback(){var t,e;(t=this.renderRoot)!=null||(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$EO)==null||e.forEach(r=>{var s;return(s=r.hostConnected)==null?void 0:s.call(r)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$EO)==null||t.forEach(e=>{var r;return(r=e.hostDisconnected)==null?void 0:r.call(e)})}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$EC(t,e){var n;let r=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,r);if(s!==void 0&&r.reflect===!0){let o=(((n=r.converter)==null?void 0:n.toAttribute)!==void 0?r.converter:Ve).toAttribute(e,r.type);this._$Em=t,o==null?this.removeAttribute(s):this.setAttribute(s,o),this._$Em=null}}_$AK(t,e){var n;let r=this.constructor,s=r._$Eh.get(t);if(s!==void 0&&this._$Em!==s){let o=r.getPropertyOptions(s),l=typeof o.converter=="function"?{fromAttribute:o.converter}:((n=o.converter)==null?void 0:n.fromAttribute)!==void 0?o.converter:Ve;this._$Em=s,this[s]=l.fromAttribute(e,o.type),this._$Em=null}}requestUpdate(t,e,r){var s;if(t!==void 0){if(r!=null||(r=this.constructor.getPropertyOptions(t)),!((s=r.hasChanged)!=null?s:gt)(this[t],e))return;this.P(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,e,r){var s;this._$AL.has(t)||this._$AL.set(t,e),r.reflect===!0&&this._$Em!==t&&((s=this._$Ej)!=null?s:this._$Ej=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r,s;if(!this.isUpdatePending)return;if(!this.hasUpdated){if((r=this.renderRoot)!=null||(this.renderRoot=this.createRenderRoot()),this._$Ep){for(let[o,l]of this._$Ep)this[o]=l;this._$Ep=void 0}let n=this.constructor.elementProperties;if(n.size>0)for(let[o,l]of n)l.wrapped!==!0||this._$AL.has(o)||this[o]===void 0||this.P(o,this[o],l)}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),(s=this._$EO)==null||s.forEach(n=>{var o;return(o=n.hostUpdate)==null?void 0:o.call(n)}),this.update(e)):this._$EU()}catch(n){throw t=!1,this._$EU(),n}t&&this._$AE(e)}willUpdate(t){}_$AE(t){var e;(e=this._$EO)==null||e.forEach(r=>{var s;return(s=r.hostUpdated)==null?void 0:s.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(e=>this._$EC(e,this[e]))),this._$EU()}updated(t){}firstUpdated(t){}},zr;Z.elementStyles=[],Z.shadowRootOptions={mode:"open"},Z[Pe("elementProperties")]=new Map,Z[Pe("finalized")]=new Map,Kt==null||Kt({ReactiveElement:Z}),((zr=O.reactiveElementVersions)!=null?zr:O.reactiveElementVersions=[]).push("2.0.4");var _e=globalThis,bt=_e.trustedTypes,Wr=bt?bt.createPolicy("lit-html",{createHTML:i=>i}):void 0,Gt="$lit$",G=`lit$${Math.random().toFixed(9).slice(2)}$`,Qt="?"+G,Ws=`<${Qt}>`,me=_e.document===void 0?{createTreeWalker:()=>({})}:document,Oe=()=>me.createComment(""),Ue=i=>i===null||typeof i!="object"&&typeof i!="function",er=Array.isArray,ts=i=>er(i)||typeof(i==null?void 0:i[Symbol.iterator])=="function",Jt=`[
1
+ var Hr=Object.defineProperty,ks=Object.defineProperties,Ms=Object.getOwnPropertyDescriptor,Ls=Object.getOwnPropertyDescriptors;var Mr=Object.getOwnPropertySymbols;var Hs=Object.prototype.hasOwnProperty,Ps=Object.prototype.propertyIsEnumerable;var Lr=(i,t,e)=>t in i?Hr(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,_=(i,t)=>{for(var e in t||(t={}))Hs.call(t,e)&&Lr(i,e,t[e]);if(Mr)for(var e of Mr(t))Ps.call(t,e)&&Lr(i,e,t[e]);return i},R=(i,t)=>ks(i,Ls(t));var a=(i,t,e,r)=>{for(var s=r>1?void 0:r?Ms(t,e):t,o=i.length-1,n;o>=0;o--)(n=i[o])&&(s=(r?n(t,e,s):n(s))||s);return r&&s&&Hr(t,e,s),s};var re=class extends Event{constructor(t,e,r){super("context-request",{bubbles:!0,composed:!0}),this.context=t,this.callback=e,this.subscribe=r!=null?r:!1}};var xe=class{constructor(t,e,r,s){var o;if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(n,l)=>{this.unsubscribe&&(this.unsubscribe!==l&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=n,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(n,l)),this.unsubscribe=l},this.host=t,e.context!==void 0){let n=e;this.context=n.context,this.callback=n.callback,this.subscribe=(o=n.subscribe)!=null?o:!1}else this.context=e,this.callback=r,this.subscribe=s!=null?s:!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new re(this.context,this.t,this.subscribe))}};var ht=class{get value(){return this.o}set value(t){this.setValue(t)}setValue(t,e=!1){let r=e||!Object.is(t,this.o);this.o=t,r&&this.updateObservers()}constructor(t){this.subscriptions=new Map,this.updateObservers=()=>{for(let[e,{disposer:r}]of this.subscriptions)e(this.o,r)},t!==void 0&&(this.value=t)}addCallback(t,e,r){if(!r)return void t(this.value);this.subscriptions.has(t)||this.subscriptions.set(t,{disposer:()=>{this.subscriptions.delete(t)},consumerHost:e});let{disposer:s}=this.subscriptions.get(t);t(this.value,s)}clearCallbacks(){this.subscriptions.clear()}};var jt=class extends Event{constructor(t){super("context-provider",{bubbles:!0,composed:!0}),this.context=t}},Ee=class extends ht{constructor(t,e,r){var s,o;super(e.context!==void 0?e.initialValue:r),this.onContextRequest=n=>{let l=n.composedPath()[0];n.context===this.context&&l!==this.host&&(n.stopPropagation(),this.addCallback(n.callback,l,n.subscribe))},this.onProviderRequest=n=>{let l=n.composedPath()[0];if(n.context!==this.context||l===this.host)return;let c=new Set;for(let[d,{consumerHost:h}]of this.subscriptions)c.has(d)||(c.add(d),h.dispatchEvent(new re(this.context,d,!0)));n.stopPropagation()},this.host=t,e.context!==void 0?this.context=e.context:this.context=e,this.attachListeners(),(o=(s=this.host).addController)==null||o.call(s,this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new jt(this.context))}};function Yt({context:i}){return(t,e)=>{let r=new WeakMap;if(typeof e=="object")return e.addInitializer(function(){r.set(this,new Ee(this,{context:i}))}),{get(){return t.get.call(this)},set(s){var o;return(o=r.get(this))==null||o.setValue(s),t.set.call(this,s)},init(s){var o;return(o=r.get(this))==null||o.setValue(s),s}};{t.constructor.addInitializer(n=>{r.set(n,new Ee(n,{context:i}))});let s=Object.getOwnPropertyDescriptor(t,e),o;if(s===void 0){let n=new WeakMap;o={get(){return n.get(this)},set(l){r.get(this).setValue(l),n.set(this,l)},configurable:!0,enumerable:!0}}else{let n=s.set;o=R(_({},s),{set(l){r.get(this).setValue(l),n==null||n.call(this,l)}})}return void Object.defineProperty(t,e,o)}}}function J({context:i,subscribe:t}){return(e,r)=>{typeof r=="object"?r.addInitializer(function(){new xe(this,{context:i,callback:s=>{e.set.call(this,s)},subscribe:t})}):e.constructor.addInitializer(s=>{new xe(s,{context:i,callback:o=>{s[r]=o},subscribe:t})})}}var Pr=class{get shadowRoot(){return this.__host.__shadowRoot}constructor(t){this.ariaAtomic="",this.ariaAutoComplete="",this.ariaBraileLabel="",this.ariaBraileRoleDescription="",this.ariaBusy="",this.ariaChecked="",this.ariaColCount="",this.ariaColIndex="",this.ariaColSpan="",this.ariaCurrent="",this.ariaDescription="",this.ariaDisabled="",this.ariaExpanded="",this.ariaHasPopup="",this.ariaHidden="",this.ariaInvalid="",this.ariaKeyShortcuts="",this.ariaLabel="",this.ariaLevel="",this.ariaLive="",this.ariaModal="",this.ariaMultiLine="",this.ariaMultiSelectable="",this.ariaOrientation="",this.ariaPlaceholder="",this.ariaPosInSet="",this.ariaPressed="",this.ariaReadOnly="",this.ariaRequired="",this.ariaRoleDescription="",this.ariaRowCount="",this.ariaRowIndex="",this.ariaRowSpan="",this.ariaSelected="",this.ariaSetSize="",this.ariaSort="",this.ariaValueMax="",this.ariaValueMin="",this.ariaValueNow="",this.ariaValueText="",this.role="",this.form=null,this.labels=[],this.states=new Set,this.validationMessage="",this.validity={},this.willValidate=!0,this.__host=t}checkValidity(){return console.warn("`ElementInternals.checkValidity()` was called on the server.This method always returns true."),!0}reportValidity(){return!0}setFormValue(){}setValidity(){}};var Nr=new WeakMap,Le=i=>{let t=Nr.get(i);return t===void 0&&Nr.set(i,t=new Map),t},Vs=class{constructor(){this.__shadowRootMode=null,this.__shadowRoot=null,this.__internals=null}get attributes(){return Array.from(Le(this)).map(([t,e])=>({name:t,value:e}))}get shadowRoot(){return this.__shadowRootMode==="closed"?null:this.__shadowRoot}setAttribute(t,e){Le(this).set(t,String(e))}removeAttribute(t){Le(this).delete(t)}toggleAttribute(t,e){if(this.hasAttribute(t)){if(e===void 0||!e)return this.removeAttribute(t),!1}else return e===void 0||e?(this.setAttribute(t,""),!0):!1;return!0}hasAttribute(t){return Le(this).has(t)}attachShadow(t){let e={host:this};return this.__shadowRootMode=t.mode,t&&t.mode==="open"&&(this.__shadowRoot=e),e}attachInternals(){if(this.__internals!==null)throw new Error("Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals for the specified element was already attached.");let t=new Pr(this);return this.__internals=t,t}getAttribute(t){let e=Le(this).get(t);return e!=null?e:null}};var Ds=class extends Vs{},Vr=Ds;var Os=class{constructor(){this.__definitions=new Map}define(t,e){var r;if(this.__definitions.has(t))throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);this.__definitions.set(t,{ctor:e,observedAttributes:(r=e.observedAttributes)!=null?r:[]})}get(t){let e=this.__definitions.get(t);return e==null?void 0:e.ctor}},Us=Os;var Dr=new Us;var He=globalThis,mt=He.ShadowRoot&&(He.ShadyCSS===void 0||He.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,zt=Symbol(),Or=new WeakMap,Pe=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==zt)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o,e=this.t;if(mt&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=Or.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&Or.set(e,t))}return t}toString(){return this.cssText}},Ur=i=>new Pe(typeof i=="string"?i:i+"",void 0,zt),b=(i,...t)=>{let e=i.length===1?i[0]:t.reduce((r,s,o)=>r+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+i[o+1],i[0]);return new Pe(e,i,zt)},Wt=(i,t)=>{if(mt)i.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),s=He.litNonce;s!==void 0&&r.setAttribute("nonce",s),r.textContent=e.cssText,i.appendChild(r)}},ft=mt||He.CSSStyleSheet===void 0?i=>i:i=>i instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return Ur(e)})(i):i;var{is:Is,defineProperty:Fs,getOwnPropertyDescriptor:Bs,getOwnPropertyNames:Xs,getOwnPropertySymbols:js,getPrototypeOf:Ys}=Object,O=globalThis,Br;(Br=O.customElements)!=null||(O.customElements=Dr);var Ir=O.trustedTypes,zs=Ir?Ir.emptyScript:"",Kt=O.reactiveElementPolyfillSupport,Ne=(i,t)=>i,Ve={toAttribute(i,t){switch(t){case Boolean:i=i?zs:null;break;case Object:case Array:i=i==null?i:JSON.stringify(i)}return i},fromAttribute(i,t){let e=i;switch(t){case Boolean:e=i!==null;break;case Number:e=i===null?null:Number(i);break;case Object:case Array:try{e=JSON.parse(i)}catch(r){e=null}}return e}},gt=(i,t)=>!Is(i,t),Fr={attribute:!0,type:String,converter:Ve,reflect:!1,hasChanged:gt},Xr,jr;(Xr=Symbol.metadata)!=null||(Symbol.metadata=Symbol("metadata")),(jr=O.litPropertyMetadata)!=null||(O.litPropertyMetadata=new WeakMap);var Yr,Z=class extends((Yr=globalThis.HTMLElement)!=null?Yr:Vr){static addInitializer(t){var e;this._$Ei(),((e=this.l)!=null?e:this.l=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=Fr){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),s=this.getPropertyDescriptor(t,r,e);s!==void 0&&Fs(this.prototype,t,s)}}static getPropertyDescriptor(t,e,r){var n;let{get:s,set:o}=(n=Bs(this.prototype,t))!=null?n:{get(){return this[e]},set(l){this[e]=l}};return{get(){return s==null?void 0:s.call(this)},set(l){let c=s==null?void 0:s.call(this);o.call(this,l),this.requestUpdate(t,c,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){var e;return(e=this.elementProperties.get(t))!=null?e:Fr}static _$Ei(){if(this.hasOwnProperty(Ne("elementProperties")))return;let t=Ys(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(Ne("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Ne("properties"))){let e=this.properties,r=[...Xs(e),...js(e)];for(let s of r)this.createProperty(s,e[s])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[r,s]of e)this.elementProperties.set(r,s)}this._$Eh=new Map;for(let[e,r]of this.elementProperties){let s=this._$Eu(e,r);s!==void 0&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){let e=[];if(Array.isArray(t)){let r=new Set(t.flat(1/0).reverse());for(let s of r)e.unshift(ft(s))}else t!==void 0&&e.push(ft(t));return e}static _$Eu(t,e){let r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var t;this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),(t=this.constructor.l)==null||t.forEach(e=>e(this))}addController(t){var e,r;((e=this._$EO)!=null?e:this._$EO=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&((r=t.hostConnected)==null||r.call(t))}removeController(t){var e;(e=this._$EO)==null||e.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){var e;let t=(e=this.shadowRoot)!=null?e:this.attachShadow(this.constructor.shadowRootOptions);return Wt(t,this.constructor.elementStyles),t}connectedCallback(){var t,e;(t=this.renderRoot)!=null||(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$EO)==null||e.forEach(r=>{var s;return(s=r.hostConnected)==null?void 0:s.call(r)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$EO)==null||t.forEach(e=>{var r;return(r=e.hostDisconnected)==null?void 0:r.call(e)})}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$EC(t,e){var o;let r=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,r);if(s!==void 0&&r.reflect===!0){let n=(((o=r.converter)==null?void 0:o.toAttribute)!==void 0?r.converter:Ve).toAttribute(e,r.type);this._$Em=t,n==null?this.removeAttribute(s):this.setAttribute(s,n),this._$Em=null}}_$AK(t,e){var o;let r=this.constructor,s=r._$Eh.get(t);if(s!==void 0&&this._$Em!==s){let n=r.getPropertyOptions(s),l=typeof n.converter=="function"?{fromAttribute:n.converter}:((o=n.converter)==null?void 0:o.fromAttribute)!==void 0?n.converter:Ve;this._$Em=s,this[s]=l.fromAttribute(e,n.type),this._$Em=null}}requestUpdate(t,e,r){var s;if(t!==void 0){if(r!=null||(r=this.constructor.getPropertyOptions(t)),!((s=r.hasChanged)!=null?s:gt)(this[t],e))return;this.P(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,e,r){var s;this._$AL.has(t)||this._$AL.set(t,e),r.reflect===!0&&this._$Em!==t&&((s=this._$Ej)!=null?s:this._$Ej=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r,s;if(!this.isUpdatePending)return;if(!this.hasUpdated){if((r=this.renderRoot)!=null||(this.renderRoot=this.createRenderRoot()),this._$Ep){for(let[n,l]of this._$Ep)this[n]=l;this._$Ep=void 0}let o=this.constructor.elementProperties;if(o.size>0)for(let[n,l]of o)l.wrapped!==!0||this._$AL.has(n)||this[n]===void 0||this.P(n,this[n],l)}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),(s=this._$EO)==null||s.forEach(o=>{var n;return(n=o.hostUpdate)==null?void 0:n.call(o)}),this.update(e)):this._$EU()}catch(o){throw t=!1,this._$EU(),o}t&&this._$AE(e)}willUpdate(t){}_$AE(t){var e;(e=this._$EO)==null||e.forEach(r=>{var s;return(s=r.hostUpdated)==null?void 0:s.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(e=>this._$EC(e,this[e]))),this._$EU()}updated(t){}firstUpdated(t){}},zr;Z.elementStyles=[],Z.shadowRootOptions={mode:"open"},Z[Ne("elementProperties")]=new Map,Z[Ne("finalized")]=new Map,Kt==null||Kt({ReactiveElement:Z}),((zr=O.reactiveElementVersions)!=null?zr:O.reactiveElementVersions=[]).push("2.0.4");var _e=globalThis,bt=_e.trustedTypes,Wr=bt?bt.createPolicy("lit-html",{createHTML:i=>i}):void 0,Gt="$lit$",G=`lit$${Math.random().toFixed(9).slice(2)}$`,Qt="?"+G,Ws=`<${Qt}>`,me=_e.document===void 0?{createTreeWalker:()=>({})}:document,Oe=()=>me.createComment(""),Ue=i=>i===null||typeof i!="object"&&typeof i!="function",er=Array.isArray,ts=i=>er(i)||typeof(i==null?void 0:i[Symbol.iterator])=="function",Jt=`[
2
2
  \f\r]`,De=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Kr=/-->/g,Jr=/>/g,ue=RegExp(`>|${Jt}(?:([^\\s"'>=/]+)(${Jt}*=${Jt}*(?:[^
3
- \f\r"'\`<>=]|("|')|))|$)`,"g"),Zr=/'/g,Gr=/"/g,rs=/^(?:script|style|textarea|title)$/i,tr=i=>(t,...e)=>({_$litType$:i,strings:t,values:e}),u=tr(1),rr=tr(2),lo=tr(3),L=Symbol.for("lit-noChange"),C=Symbol.for("lit-nothing"),Qr=new WeakMap,he=me.createTreeWalker(me,129);function ss(i,t){if(!er(i)||!i.hasOwnProperty("raw"))throw Error("invalid template strings array");return Wr!==void 0?Wr.createHTML(t):t}var is=(i,t)=>{let e=i.length-1,r=[],s,n=t===2?"<svg>":t===3?"<math>":"",o=De;for(let l=0;l<e;l++){let c=i[l],d,h,f=-1,y=0;for(;y<c.length&&(o.lastIndex=y,h=o.exec(c),h!==null);)y=o.lastIndex,o===De?h[1]==="!--"?o=Kr:h[1]!==void 0?o=Jr:h[2]!==void 0?(rs.test(h[2])&&(s=RegExp("</"+h[2],"g")),o=ue):h[3]!==void 0&&(o=ue):o===ue?h[0]===">"?(o=s!=null?s:De,f=-1):h[1]===void 0?f=-2:(f=o.lastIndex-h[2].length,d=h[1],o=h[3]===void 0?ue:h[3]==='"'?Gr:Zr):o===Gr||o===Zr?o=ue:o===Kr||o===Jr?o=De:(o=ue,s=void 0);let v=o===ue&&i[l+1].startsWith("/>")?" ":"";n+=o===De?c+Ws:f>=0?(r.push(d),c.slice(0,f)+Gt+c.slice(f)+G+v):c+G+(f===-2?l:v)}return[ss(i,n+(i[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},Ie=class i{constructor({strings:t,_$litType$:e},r){let s;this.parts=[];let n=0,o=0,l=t.length-1,c=this.parts,[d,h]=is(t,e);if(this.el=i.createElement(d,r),he.currentNode=this.el.content,e===2||e===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(s=he.nextNode())!==null&&c.length<l;){if(s.nodeType===1){if(s.hasAttributes())for(let f of s.getAttributeNames())if(f.endsWith(Gt)){let y=h[o++],v=s.getAttribute(f).split(G),A=/([.?@])?(.*)/.exec(y);c.push({type:1,index:n,name:A[2],strings:v,ctor:A[1]==="."?yt:A[1]==="?"?xt:A[1]==="@"?Et:ge}),s.removeAttribute(f)}else f.startsWith(G)&&(c.push({type:6,index:n}),s.removeAttribute(f));if(rs.test(s.tagName)){let f=s.textContent.split(G),y=f.length-1;if(y>0){s.textContent=bt?bt.emptyScript:"";for(let v=0;v<y;v++)s.append(f[v],Oe()),he.nextNode(),c.push({type:2,index:++n});s.append(f[y],Oe())}}}else if(s.nodeType===8)if(s.data===Qt)c.push({type:2,index:n});else{let f=-1;for(;(f=s.data.indexOf(G,f+1))!==-1;)c.push({type:7,index:n}),f+=G.length-1}n++}}static createElement(t,e){let r=me.createElement("template");return r.innerHTML=t,r}};function fe(i,t,e=i,r){var o,l,c;if(t===L)return t;let s=r!==void 0?(o=e.o)==null?void 0:o[r]:e.l,n=Ue(t)?void 0:t._$litDirective$;return(s==null?void 0:s.constructor)!==n&&((l=s==null?void 0:s._$AO)==null||l.call(s,!1),n===void 0?s=void 0:(s=new n(i),s._$AT(i,e,r)),r!==void 0?((c=e.o)!=null?c:e.o=[])[r]=s:e.l=s),s!==void 0&&(t=fe(i,s._$AS(i,t.values),s,r)),t}var vt=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var d;let{el:{content:e},parts:r}=this._$AD,s=((d=t==null?void 0:t.creationScope)!=null?d:me).importNode(e,!0);he.currentNode=s;let n=he.nextNode(),o=0,l=0,c=r[0];for(;c!==void 0;){if(o===c.index){let h;c.type===2?h=new Ce(n,n.nextSibling,this,t):c.type===1?h=new c.ctor(n,c.name,c.strings,this,t):c.type===6&&(h=new _t(n,this,t)),this._$AV.push(h),c=r[++l]}o!==(c==null?void 0:c.index)&&(n=he.nextNode(),o++)}return he.currentNode=me,s}p(t){let e=0;for(let r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}},Ce=class i{get _$AU(){var t,e;return(e=(t=this._$AM)==null?void 0:t._$AU)!=null?e:this.v}constructor(t,e,r,s){var n;this.type=2,this._$AH=C,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=s,this.v=(n=s==null?void 0:s.isConnected)!=null?n:!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=fe(this,t,e),Ue(t)?t===C||t==null||t===""?(this._$AH!==C&&this._$AR(),this._$AH=C):t!==this._$AH&&t!==L&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):ts(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==C&&Ue(this._$AH)?this._$AA.nextSibling.data=t:this.T(me.createTextNode(t)),this._$AH=t}$(t){var n;let{values:e,_$litType$:r}=t,s=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=Ie.createElement(ss(r.h,r.h[0]),this.options)),r);if(((n=this._$AH)==null?void 0:n._$AD)===s)this._$AH.p(e);else{let o=new vt(s,this),l=o.u(this.options);o.p(e),this.T(l),this._$AH=o}}_$AC(t){let e=Qr.get(t.strings);return e===void 0&&Qr.set(t.strings,e=new Ie(t)),e}k(t){er(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,r,s=0;for(let n of t)s===e.length?e.push(r=new i(this.O(Oe()),this.O(Oe()),this,this.options)):r=e[s],r._$AI(n),s++;s<e.length&&(this._$AR(r&&r._$AB.nextSibling,s),e.length=s)}_$AR(t=this._$AA.nextSibling,e){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,e);t&&t!==this._$AB;){let s=t.nextSibling;t.remove(),t=s}}setConnected(t){var e;this._$AM===void 0&&(this.v=t,(e=this._$AP)==null||e.call(this,t))}},ge=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,s,n){this.type=1,this._$AH=C,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=n,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=C}_$AI(t,e=this,r,s){let n=this.strings,o=!1;if(n===void 0)t=fe(this,t,e,0),o=!Ue(t)||t!==this._$AH&&t!==L,o&&(this._$AH=t);else{let l=t,c,d;for(t=n[0],c=0;c<n.length-1;c++)d=fe(this,l[r+c],e,c),d===L&&(d=this._$AH[c]),o||(o=!Ue(d)||d!==this._$AH[c]),d===C?t=C:t!==C&&(t+=(d!=null?d:"")+n[c+1]),this._$AH[c]=d}o&&!s&&this.j(t)}j(t){t===C?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t!=null?t:"")}},yt=class extends ge{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===C?void 0:t}},xt=class extends ge{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==C)}},Et=class extends ge{constructor(t,e,r,s,n){super(t,e,r,s,n),this.type=5}_$AI(t,e=this){var o;if((t=(o=fe(this,t,e,0))!=null?o:C)===L)return;let r=this._$AH,s=t===C&&r!==C||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,n=t!==C&&(r===C||s);s&&this.element.removeEventListener(this.name,this,r),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,r;typeof this._$AH=="function"?this._$AH.call((r=(e=this.options)==null?void 0:e.host)!=null?r:this.element,t):this._$AH.handleEvent(t)}},_t=class{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){fe(this,t)}},os={M:Gt,P:G,A:Qt,C:1,L:is,R:vt,D:ts,V:fe,I:Ce,H:ge,N:xt,U:Et,B:yt,F:_t},Zt=_e.litHtmlPolyfillSupport,es;Zt==null||Zt(Ie,Ce),((es=_e.litHtmlVersions)!=null?es:_e.litHtmlVersions=[]).push("3.2.0");var ns=(i,t,e)=>{var n,o;let r=(n=e==null?void 0:e.renderBefore)!=null?n:t,s=r._$litPart$;if(s===void 0){let l=(o=e==null?void 0:e.renderBefore)!=null?o:null;r._$litPart$=s=new Ce(t.insertBefore(Oe(),l),l,void 0,e!=null?e:{})}return s._$AI(i),s};var g=class extends Z{constructor(){super(...arguments),this.renderOptions={host:this},this.o=void 0}createRenderRoot(){var e,r;let t=super.createRenderRoot();return(r=(e=this.renderOptions).renderBefore)!=null||(e.renderBefore=t.firstChild),t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this.o=ns(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this.o)==null||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.o)==null||t.setConnected(!1)}render(){return L}},as;g._$litElement$=!0,g.finalized=!0,(as=globalThis.litElementHydrateSupport)==null||as.call(globalThis,{LitElement:g});var sr=globalThis.litElementPolyfillSupport;sr==null||sr({LitElement:g});var ls;((ls=globalThis.litElementVersions)!=null?ls:globalThis.litElementVersions=[]).push("4.1.0");var m=i=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(i,t)}):customElements.define(i,t)};var Ks={attribute:!0,type:String,converter:Ve,reflect:!1,hasChanged:gt},Js=(i=Ks,t,e)=>{let{kind:r,metadata:s}=e,n=globalThis.litPropertyMetadata.get(s);if(n===void 0&&globalThis.litPropertyMetadata.set(s,n=new Map),n.set(e.name,i),r==="accessor"){let{name:o}=e;return{set(l){let c=t.get.call(this);t.set.call(this,l),this.requestUpdate(o,c,i)},init(l){return l!==void 0&&this.P(o,void 0,i),l}}}if(r==="setter"){let{name:o}=e;return function(l){let c=this[o];t.call(this,l),this.requestUpdate(o,c,i)}}throw Error("Unsupported decorator location: "+r)};function p(i){return(t,e)=>typeof e=="object"?Js(i,t,e):((r,s,n)=>{let o=s.hasOwnProperty(n);return s.constructor.createProperty(n,o?S(_({},r),{wrapped:!0}):r),o?Object.getOwnPropertyDescriptor(s,n):void 0})(i,t,e)}function E(i){return p(S(_({},i),{state:!0,attribute:!1}))}var se=(i,t,e)=>(e.configurable=!0,e.enumerable=!0,Reflect.decorate&&typeof t!="object"&&Object.defineProperty(i,t,e),e);function Fe(i,t){return(e,r,s)=>{let n=o=>{var l,c;return(c=(l=o.renderRoot)==null?void 0:l.querySelector(i))!=null?c:null};if(t){let{get:o,set:l}=typeof r=="object"?e:s!=null?s:(()=>{let c=Symbol();return{get(){return this[c]},set(d){this[c]=d}}})();return se(e,r,{get(){let c=o.call(this);return c===void 0&&(c=n(this),(c!==null||this.hasUpdated)&&l.call(this,c)),c}})}return se(e,r,{get(){return n(this)}})}}function cs(i){return(t,e)=>{let{slot:r,selector:s}=i!=null?i:{},n="slot"+(r?`[name=${r}]`:":not([name])");return se(t,e,{get(){var c,d;let o=(c=this.renderRoot)==null?void 0:c.querySelector(n),l=(d=o==null?void 0:o.assignedElements(i))!=null?d:[];return s===void 0?l:l.filter(h=>h.matches(s))}})}}function T(i,t){let e=_({waitUntilFirstUpdate:!1},t);return(r,s)=>{let{update:n}=r,o=Array.isArray(i)?i:[i];r.update=function(l){o.forEach(c=>{let d=c;if(l.has(d)){let h=l.get(d),f=this[d];h!==f&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[s](h,f)}}),n.call(this,l)}}}var ps=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}],U="item";var H=class extends g{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent="false";this._handleDisabledChange=(e,r)=>{this._interactionElements.forEach(s=>s.disabled=r)};this._handleReadonlyChange=(e,r)=>this._interactionElements.forEach(s=>s.readonly=r);this._context={identifier:this.getAttribute("identifier"),variables:ps};this._initialContext=S(_({},this._context),{variables:this._context.variables});this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context=S(_({},this._context),{variables:[...this._context.variables,e.detail.variable]}),this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let r=e.detail;this._feedbackElements.push(r),r.checkShowFeedback(r.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.target)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:r,countAttempt:s}=e.detail;this.updateResponseVariable(r,"true"),this.processResponse(s)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:r,value:s}=e.detail;this.updateOutcomeVariable(r,s),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>({identifier:e.identifier,value:e.value,type:e.type}))}set variables(e){if(!Array.isArray(e)||e.some(r=>!("identifier"in r))){console.warn("variables property should be an array of VariableDeclaration");return}this._context=S(_({},this._context),{variables:this._context.variables.map(r=>{let s=e.find(n=>n.identifier===r.identifier);return s?_(_({},r),s):r})}),this._context.variables.forEach(r=>{if(r.type==="response"){let s=this._interactionElements.find(n=>n.responseIdentifier===r.identifier);s&&(s.response=r.value)}r.type==="outcome"&&this._feedbackElements.forEach(s=>s.checkShowFeedback(r.identifier))})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let r of e){this.getResponse(r.responseIdentifier)&&this.updateResponseVariable(r.responseIdentifier,r.response);let n=this._interactionElements.find(o=>o.getAttribute("response-identifier")===r.responseIdentifier);n&&(n.response=r.response)}}render(){return u`<slot></slot>`}showCorrectResponse(e){let s=this._context.variables.filter(n=>"correctResponse"in n&&n.correctResponse).map(n=>({responseIdentifier:n.identifier,response:n.correctResponse}));for(let n of s){let o=this._interactionElements.find(l=>l.getAttribute("response-identifier")===n.responseIdentifier);o&&(o.correctResponse=e?n.response:"")}}processResponse(e=!0){var s;let r=this.querySelector("qti-response-processing");return!r||!r.process?!1:(r.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+((s=this._context.variables.find(n=>n.identifier==="numAttempts"))==null?void 0:s.value)+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(r=>r.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:r,response:s}=e.detail;this.updateResponseVariable(r,s)}updateResponseVariable(e,r){this._context=S(_({},this._context),{variables:this._context.variables.map(s=>s.identifier!==e?s:S(_({},s),{value:r}))}),this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(r)?[...r]:r}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,r){var n;let s=this.getOutcome(e);if(!s){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context=S(_({},this._context),{variables:this._context.variables.map(o=>o.identifier!==e?o:S(_({},o),{value:s.cardinality==="single"?r:[...o.value,r]}))}),this._feedbackElements.forEach(o=>o.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:(n=this._context.variables.find(o=>o.identifier===e))==null?void 0:n.value})}_getCompletionStatus(){return this._interactionElements.every(e=>e.validate())?"completed":this._interactionElements.some(e=>e.validate())?"incomplete":"not_attempted"}_emit(e,r=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:r}))}};a([p({type:String})],H.prototype,"title",2),a([p({type:String})],H.prototype,"identifier",2),a([p({type:String})],H.prototype,"adaptive",2),a([p({type:String})],H.prototype,"timeDependent",2),a([p({type:Boolean})],H.prototype,"disabled",2),a([T("disabled",{waitUntilFirstUpdate:!0})],H.prototype,"_handleDisabledChange",2),a([p({type:Boolean})],H.prototype,"readonly",2),a([T("readonly",{waitUntilFirstUpdate:!0})],H.prototype,"_handleReadonlyChange",2),a([Yt({context:U})],H.prototype,"_context",2),H=a([m("qti-assessment-item")],H);var Zs=String.raw,ds=()=>{let i,t={async load(e,r=!1){return new Promise((s,n)=>{or(e,r).then(o=>(i=o,s(t)))})},parse(e){return i=nr(e),t},path:e=>(ei(i,e),t),fn(e){return e(i),t},pciHooks(e){let r=["hook","module"],s=e.substring(0,e.lastIndexOf("/"));for(let n of r)i.querySelectorAll("["+n+"]").forEach(l=>{let c=l.getAttribute(n);!c.startsWith("data:")&&!c.startsWith("http")&&(l.setAttribute("base-url",e),l.setAttribute("module",s+"/"+encodeURIComponent(c+(c.endsWith(".js")?"":".js"))))});return t},customInteraction(e,r){let s=i.querySelector("qti-custom-interaction"),n=s.querySelector("object");return s.setAttribute("data-base-ref",e),s.setAttribute("data-base-item",e+r),s.setAttribute("data",n.getAttribute("data")),s.setAttribute("width",n.getAttribute("width")),s.setAttribute("height",n.getAttribute("height")),s.removeChild(n),t},convertCDATAtoComment(){return ti(i),t},stripStyleSheets(){return ri(i),t},html(){return new XMLSerializer().serializeToString(Ct(i))},xml(){return new XMLSerializer().serializeToString(i)},htmldoc(){return Ct(i)},xmldoc(){return i}};return t},pn=()=>{let i,t={async load(e){return new Promise((r,s)=>{or(e).then(n=>(i=n,r(t)))})},parse(e){i=nr(e)},assessmentTest(){let e=i.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:e.getAttribute("href"),identifier:e.getAttribute("identifier")}}};return t},dn=()=>{let i,t={async load(e){return new Promise((r,s)=>{or(e).then(n=>(i=n,r(t)))})},parse(e){return i=nr(e),t},fn(e){return e(i),t},items(){return Qs(i)},html(){return new XMLSerializer().serializeToString(Ct(i))},xml(){return new XMLSerializer().serializeToString(i)},htmldoc(){return Ct(i)},xmldoc(){return i}};return t},Gs=Zs`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Zr=/'/g,Gr=/"/g,rs=/^(?:script|style|textarea|title)$/i,tr=i=>(t,...e)=>({_$litType$:i,strings:t,values:e}),u=tr(1),rr=tr(2),lo=tr(3),L=Symbol.for("lit-noChange"),C=Symbol.for("lit-nothing"),Qr=new WeakMap,he=me.createTreeWalker(me,129);function ss(i,t){if(!er(i)||!i.hasOwnProperty("raw"))throw Error("invalid template strings array");return Wr!==void 0?Wr.createHTML(t):t}var is=(i,t)=>{let e=i.length-1,r=[],s,o=t===2?"<svg>":t===3?"<math>":"",n=De;for(let l=0;l<e;l++){let c=i[l],d,h,f=-1,y=0;for(;y<c.length&&(n.lastIndex=y,h=n.exec(c),h!==null);)y=n.lastIndex,n===De?h[1]==="!--"?n=Kr:h[1]!==void 0?n=Jr:h[2]!==void 0?(rs.test(h[2])&&(s=RegExp("</"+h[2],"g")),n=ue):h[3]!==void 0&&(n=ue):n===ue?h[0]===">"?(n=s!=null?s:De,f=-1):h[1]===void 0?f=-2:(f=n.lastIndex-h[2].length,d=h[1],n=h[3]===void 0?ue:h[3]==='"'?Gr:Zr):n===Gr||n===Zr?n=ue:n===Kr||n===Jr?n=De:(n=ue,s=void 0);let v=n===ue&&i[l+1].startsWith("/>")?" ":"";o+=n===De?c+Ws:f>=0?(r.push(d),c.slice(0,f)+Gt+c.slice(f)+G+v):c+G+(f===-2?l:v)}return[ss(i,o+(i[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},Ie=class i{constructor({strings:t,_$litType$:e},r){let s;this.parts=[];let o=0,n=0,l=t.length-1,c=this.parts,[d,h]=is(t,e);if(this.el=i.createElement(d,r),he.currentNode=this.el.content,e===2||e===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(s=he.nextNode())!==null&&c.length<l;){if(s.nodeType===1){if(s.hasAttributes())for(let f of s.getAttributeNames())if(f.endsWith(Gt)){let y=h[n++],v=s.getAttribute(f).split(G),A=/([.?@])?(.*)/.exec(y);c.push({type:1,index:o,name:A[2],strings:v,ctor:A[1]==="."?yt:A[1]==="?"?xt:A[1]==="@"?Et:ge}),s.removeAttribute(f)}else f.startsWith(G)&&(c.push({type:6,index:o}),s.removeAttribute(f));if(rs.test(s.tagName)){let f=s.textContent.split(G),y=f.length-1;if(y>0){s.textContent=bt?bt.emptyScript:"";for(let v=0;v<y;v++)s.append(f[v],Oe()),he.nextNode(),c.push({type:2,index:++o});s.append(f[y],Oe())}}}else if(s.nodeType===8)if(s.data===Qt)c.push({type:2,index:o});else{let f=-1;for(;(f=s.data.indexOf(G,f+1))!==-1;)c.push({type:7,index:o}),f+=G.length-1}o++}}static createElement(t,e){let r=me.createElement("template");return r.innerHTML=t,r}};function fe(i,t,e=i,r){var n,l,c;if(t===L)return t;let s=r!==void 0?(n=e.o)==null?void 0:n[r]:e.l,o=Ue(t)?void 0:t._$litDirective$;return(s==null?void 0:s.constructor)!==o&&((l=s==null?void 0:s._$AO)==null||l.call(s,!1),o===void 0?s=void 0:(s=new o(i),s._$AT(i,e,r)),r!==void 0?((c=e.o)!=null?c:e.o=[])[r]=s:e.l=s),s!==void 0&&(t=fe(i,s._$AS(i,t.values),s,r)),t}var vt=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var d;let{el:{content:e},parts:r}=this._$AD,s=((d=t==null?void 0:t.creationScope)!=null?d:me).importNode(e,!0);he.currentNode=s;let o=he.nextNode(),n=0,l=0,c=r[0];for(;c!==void 0;){if(n===c.index){let h;c.type===2?h=new Ce(o,o.nextSibling,this,t):c.type===1?h=new c.ctor(o,c.name,c.strings,this,t):c.type===6&&(h=new _t(o,this,t)),this._$AV.push(h),c=r[++l]}n!==(c==null?void 0:c.index)&&(o=he.nextNode(),n++)}return he.currentNode=me,s}p(t){let e=0;for(let r of this._$AV)r!==void 0&&(r.strings!==void 0?(r._$AI(t,r,e),e+=r.strings.length-2):r._$AI(t[e])),e++}},Ce=class i{get _$AU(){var t,e;return(e=(t=this._$AM)==null?void 0:t._$AU)!=null?e:this.v}constructor(t,e,r,s){var o;this.type=2,this._$AH=C,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=s,this.v=(o=s==null?void 0:s.isConnected)!=null?o:!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=fe(this,t,e),Ue(t)?t===C||t==null||t===""?(this._$AH!==C&&this._$AR(),this._$AH=C):t!==this._$AH&&t!==L&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):ts(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==C&&Ue(this._$AH)?this._$AA.nextSibling.data=t:this.T(me.createTextNode(t)),this._$AH=t}$(t){var o;let{values:e,_$litType$:r}=t,s=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=Ie.createElement(ss(r.h,r.h[0]),this.options)),r);if(((o=this._$AH)==null?void 0:o._$AD)===s)this._$AH.p(e);else{let n=new vt(s,this),l=n.u(this.options);n.p(e),this.T(l),this._$AH=n}}_$AC(t){let e=Qr.get(t.strings);return e===void 0&&Qr.set(t.strings,e=new Ie(t)),e}k(t){er(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,r,s=0;for(let o of t)s===e.length?e.push(r=new i(this.O(Oe()),this.O(Oe()),this,this.options)):r=e[s],r._$AI(o),s++;s<e.length&&(this._$AR(r&&r._$AB.nextSibling,s),e.length=s)}_$AR(t=this._$AA.nextSibling,e){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,e);t&&t!==this._$AB;){let s=t.nextSibling;t.remove(),t=s}}setConnected(t){var e;this._$AM===void 0&&(this.v=t,(e=this._$AP)==null||e.call(this,t))}},ge=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,s,o){this.type=1,this._$AH=C,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=C}_$AI(t,e=this,r,s){let o=this.strings,n=!1;if(o===void 0)t=fe(this,t,e,0),n=!Ue(t)||t!==this._$AH&&t!==L,n&&(this._$AH=t);else{let l=t,c,d;for(t=o[0],c=0;c<o.length-1;c++)d=fe(this,l[r+c],e,c),d===L&&(d=this._$AH[c]),n||(n=!Ue(d)||d!==this._$AH[c]),d===C?t=C:t!==C&&(t+=(d!=null?d:"")+o[c+1]),this._$AH[c]=d}n&&!s&&this.j(t)}j(t){t===C?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t!=null?t:"")}},yt=class extends ge{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===C?void 0:t}},xt=class extends ge{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==C)}},Et=class extends ge{constructor(t,e,r,s,o){super(t,e,r,s,o),this.type=5}_$AI(t,e=this){var n;if((t=(n=fe(this,t,e,0))!=null?n:C)===L)return;let r=this._$AH,s=t===C&&r!==C||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==C&&(r===C||s);s&&this.element.removeEventListener(this.name,this,r),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,r;typeof this._$AH=="function"?this._$AH.call((r=(e=this.options)==null?void 0:e.host)!=null?r:this.element,t):this._$AH.handleEvent(t)}},_t=class{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){fe(this,t)}},os={M:Gt,P:G,A:Qt,C:1,L:is,R:vt,D:ts,V:fe,I:Ce,H:ge,N:xt,U:Et,B:yt,F:_t},Zt=_e.litHtmlPolyfillSupport,es;Zt==null||Zt(Ie,Ce),((es=_e.litHtmlVersions)!=null?es:_e.litHtmlVersions=[]).push("3.2.0");var ns=(i,t,e)=>{var o,n;let r=(o=e==null?void 0:e.renderBefore)!=null?o:t,s=r._$litPart$;if(s===void 0){let l=(n=e==null?void 0:e.renderBefore)!=null?n:null;r._$litPart$=s=new Ce(t.insertBefore(Oe(),l),l,void 0,e!=null?e:{})}return s._$AI(i),s};var g=class extends Z{constructor(){super(...arguments),this.renderOptions={host:this},this.o=void 0}createRenderRoot(){var e,r;let t=super.createRenderRoot();return(r=(e=this.renderOptions).renderBefore)!=null||(e.renderBefore=t.firstChild),t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this.o=ns(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this.o)==null||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.o)==null||t.setConnected(!1)}render(){return L}},as;g._$litElement$=!0,g.finalized=!0,(as=globalThis.litElementHydrateSupport)==null||as.call(globalThis,{LitElement:g});var sr=globalThis.litElementPolyfillSupport;sr==null||sr({LitElement:g});var ls;((ls=globalThis.litElementVersions)!=null?ls:globalThis.litElementVersions=[]).push("4.1.0");var m=i=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(i,t)}):customElements.define(i,t)};var Ks={attribute:!0,type:String,converter:Ve,reflect:!1,hasChanged:gt},Js=(i=Ks,t,e)=>{let{kind:r,metadata:s}=e,o=globalThis.litPropertyMetadata.get(s);if(o===void 0&&globalThis.litPropertyMetadata.set(s,o=new Map),o.set(e.name,i),r==="accessor"){let{name:n}=e;return{set(l){let c=t.get.call(this);t.set.call(this,l),this.requestUpdate(n,c,i)},init(l){return l!==void 0&&this.P(n,void 0,i),l}}}if(r==="setter"){let{name:n}=e;return function(l){let c=this[n];t.call(this,l),this.requestUpdate(n,c,i)}}throw Error("Unsupported decorator location: "+r)};function p(i){return(t,e)=>typeof e=="object"?Js(i,t,e):((r,s,o)=>{let n=s.hasOwnProperty(o);return s.constructor.createProperty(o,n?R(_({},r),{wrapped:!0}):r),n?Object.getOwnPropertyDescriptor(s,o):void 0})(i,t,e)}function E(i){return p(R(_({},i),{state:!0,attribute:!1}))}var se=(i,t,e)=>(e.configurable=!0,e.enumerable=!0,Reflect.decorate&&typeof t!="object"&&Object.defineProperty(i,t,e),e);function Fe(i,t){return(e,r,s)=>{let o=n=>{var l,c;return(c=(l=n.renderRoot)==null?void 0:l.querySelector(i))!=null?c:null};if(t){let{get:n,set:l}=typeof r=="object"?e:s!=null?s:(()=>{let c=Symbol();return{get(){return this[c]},set(d){this[c]=d}}})();return se(e,r,{get(){let c=n.call(this);return c===void 0&&(c=o(this),(c!==null||this.hasUpdated)&&l.call(this,c)),c}})}return se(e,r,{get(){return o(this)}})}}function cs(i){return(t,e)=>{let{slot:r,selector:s}=i!=null?i:{},o="slot"+(r?`[name=${r}]`:":not([name])");return se(t,e,{get(){var c,d;let n=(c=this.renderRoot)==null?void 0:c.querySelector(o),l=(d=n==null?void 0:n.assignedElements(i))!=null?d:[];return s===void 0?l:l.filter(h=>h.matches(s))}})}}function S(i,t){let e=_({waitUntilFirstUpdate:!1},t);return(r,s)=>{let{update:o}=r,n=Array.isArray(i)?i:[i];r.update=function(l){n.forEach(c=>{let d=c;if(l.has(d)){let h=l.get(d),f=this[d];h!==f&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[s](h,f)}}),o.call(this,l)}}}var ps=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}],U="item";var H=class extends g{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent="false";this._handleDisabledChange=(e,r)=>{this._interactionElements.forEach(s=>s.disabled=r)};this._handleReadonlyChange=(e,r)=>this._interactionElements.forEach(s=>s.readonly=r);this._context={identifier:this.getAttribute("identifier"),variables:ps};this._initialContext=R(_({},this._context),{variables:this._context.variables});this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context=R(_({},this._context),{variables:[...this._context.variables,e.detail.variable]}),this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let r=e.detail;this._feedbackElements.push(r),r.checkShowFeedback(r.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.target)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:r,countAttempt:s}=e.detail;this.updateResponseVariable(r,"true"),this.processResponse(s)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:r,value:s}=e.detail;this.updateOutcomeVariable(r,s),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>({identifier:e.identifier,value:e.value,type:e.type}))}set variables(e){if(!Array.isArray(e)||e.some(r=>!("identifier"in r))){console.warn("variables property should be an array of VariableDeclaration");return}this._context=R(_({},this._context),{variables:this._context.variables.map(r=>{let s=e.find(o=>o.identifier===r.identifier);return s?_(_({},r),s):r})}),this._context.variables.forEach(r=>{if(r.type==="response"){let s=this._interactionElements.find(o=>o.responseIdentifier===r.identifier);s&&(s.response=r.value)}r.type==="outcome"&&this._feedbackElements.forEach(s=>s.checkShowFeedback(r.identifier))})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let r of e){this.getResponse(r.responseIdentifier)&&this.updateResponseVariable(r.responseIdentifier,r.response);let o=this._interactionElements.find(n=>n.getAttribute("response-identifier")===r.responseIdentifier);o&&(o.response=r.response)}}render(){return u`<slot></slot>`}showCorrectResponse(e){let s=this._context.variables.filter(o=>"correctResponse"in o&&o.correctResponse).map(o=>({responseIdentifier:o.identifier,response:o.correctResponse}));for(let o of s){let n=this._interactionElements.find(l=>l.getAttribute("response-identifier")===o.responseIdentifier);n&&(n.correctResponse=e?o.response:"")}}processResponse(e=!0){var s;let r=this.querySelector("qti-response-processing");return!r||!r.process?!1:(r.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+((s=this._context.variables.find(o=>o.identifier==="numAttempts"))==null?void 0:s.value)+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(r=>r.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:r,response:s}=e.detail;this.updateResponseVariable(r,s)}updateResponseVariable(e,r){this._context=R(_({},this._context),{variables:this._context.variables.map(s=>s.identifier!==e?s:R(_({},s),{value:r}))}),this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(r)?[...r]:r}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,r){var o;let s=this.getOutcome(e);if(!s){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context=R(_({},this._context),{variables:this._context.variables.map(n=>n.identifier!==e?n:R(_({},n),{value:s.cardinality==="single"?r:[...n.value,r]}))}),this._feedbackElements.forEach(n=>n.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:(o=this._context.variables.find(n=>n.identifier===e))==null?void 0:o.value})}_getCompletionStatus(){return this._interactionElements.every(e=>e.validate())?"completed":this._interactionElements.some(e=>e.validate())?"incomplete":"not_attempted"}_emit(e,r=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:r}))}};a([p({type:String})],H.prototype,"title",2),a([p({type:String})],H.prototype,"identifier",2),a([p({type:String})],H.prototype,"adaptive",2),a([p({type:String})],H.prototype,"timeDependent",2),a([p({type:Boolean})],H.prototype,"disabled",2),a([S("disabled",{waitUntilFirstUpdate:!0})],H.prototype,"_handleDisabledChange",2),a([p({type:Boolean})],H.prototype,"readonly",2),a([S("readonly",{waitUntilFirstUpdate:!0})],H.prototype,"_handleReadonlyChange",2),a([Yt({context:U})],H.prototype,"_context",2),H=a([m("qti-assessment-item")],H);var Zs=String.raw,ds=()=>{let i,t={async load(e,r=!1){return new Promise((s,o)=>{or(e,r).then(n=>(i=n,s(t)))})},parse(e){return i=nr(e),t},path:e=>(ei(i,e),t),fn(e){return e(i),t},pciHooks(e){let r=["hook","module"],s=e.substring(0,e.lastIndexOf("/"));for(let o of r)i.querySelectorAll("["+o+"]").forEach(l=>{let c=l.getAttribute(o);!c.startsWith("data:")&&!c.startsWith("http")&&(l.setAttribute("base-url",e),l.setAttribute("module",s+"/"+encodeURIComponent(c+(c.endsWith(".js")?"":".js"))))});return t},customInteraction(e,r){let s=i.querySelector("qti-custom-interaction"),o=s.querySelector("object");return s.setAttribute("data-base-ref",e),s.setAttribute("data-base-item",e+r),s.setAttribute("data",o.getAttribute("data")),s.setAttribute("width",o.getAttribute("width")),s.setAttribute("height",o.getAttribute("height")),s.removeChild(o),t},convertCDATAtoComment(){return ti(i),t},stripStyleSheets(){return ri(i),t},html(){return new XMLSerializer().serializeToString(Ct(i))},xml(){return new XMLSerializer().serializeToString(i)},htmldoc(){return Ct(i)},xmldoc(){return i}};return t},pn=()=>{let i,t={async load(e){return new Promise((r,s)=>{or(e).then(o=>(i=o,r(t)))})},parse(e){i=nr(e)},assessmentTest(){let e=i.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:e.getAttribute("href"),identifier:e.getAttribute("identifier")}}};return t},dn=()=>{let i,t={async load(e){return new Promise((r,s)=>{or(e).then(o=>(i=o,r(t)))})},parse(e){return i=nr(e),t},fn(e){return e(i),t},items(){return Qs(i)},html(){return new XMLSerializer().serializeToString(Ct(i))},xml(){return new XMLSerializer().serializeToString(i)},htmldoc(){return Ct(i)},xmldoc(){return i}};return t},Gs=Zs`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4
4
  <xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
5
5
  <xsl:template match="@*|node()">
6
6
  <xsl:copy>
@@ -22,11 +22,11 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
22
22
  <xsl:apply-templates/>
23
23
  </xsl:element>
24
24
  </xsl:template>
25
- </xsl:stylesheet>`;function Qs(i){let t=[];return i.querySelectorAll("qti-assessment-item-ref").forEach(e=>{let r=e.getAttribute("identifier"),s=e.getAttribute("href"),n=e.getAttribute("category");t.push({identifier:r,href:s,category:n})}),t}var ir=null;function or(i,t=!0){return t&&ir!==null&&ir.abort(),new Promise((e,r)=>{let s=new XMLHttpRequest;ir=s,s.open("GET",i,!0),s.responseType="document",s.onload=()=>{s.status>=200&&s.status<300?e(s.responseXML):r(s.statusText)},s.onerror=()=>{r(s.statusText)},s.send()})}function nr(i){return new DOMParser().parseFromString(i,"text/xml")}function Ct(i){let t=new XSLTProcessor,e=new DOMParser().parseFromString(Gs,"text/xml");return t.importStylesheet(e),t.transformToFragment(i,document)}function ei(i,t){t.endsWith("/")||(t+="/"),i.querySelectorAll("[src],[href],[primary-path]").forEach(e=>{var n;let r="";e.getAttribute("src")&&(r="src"),e.getAttribute("href")&&(r="href"),e.getAttribute("primary-path")&&(r="primary-path");let s=(n=e.getAttribute(r))==null?void 0:n.trim();if(!s.startsWith("data:")&&!s.startsWith("http")){let o=t+encodeURI(s);e.setAttribute(r,o)}})}function ti(i){i.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(e=>{let r=document.createComment(e.textContent);e.replaceChild(r,e.firstChild)})}function ri(i){i.querySelectorAll("qti-stylesheet").forEach(t=>t.remove())}var Ae=class extends g{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0});if(this.dispatchEvent(e)){let n=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);n?await this.loadAndAppendStimulus(n):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async loadAndAppendStimulus(e){let r=this.href.substring(0,this.href.lastIndexOf("/")),s=await ds().load(this.href).then(n=>n.path(r).htmldoc());if(s){let n=s.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.append(...n)}}};a([p({type:String})],Ae.prototype,"identifier",2),a([p({type:String})],Ae.prototype,"href",2),Ae=a([m("qti-assessment-stimulus-ref")],Ae);var si={SPACE:32},k=class extends g{constructor(){super(...arguments);this.tabindex=0;this.disabled=!1;this.readonly=!1;this.checked=!1}handleDisabledChange(e,r){r?(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 si.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"),u` <slot></slot> `}};a([p({type:String})],k.prototype,"identifier",2),a([p({type:Number,reflect:!0})],k.prototype,"tabindex",2),a([p({reflect:!0,type:Boolean,attribute:"aria-disabled",converter:{toAttribute:e=>e}})],k.prototype,"disabled",2),a([p({reflect:!0,type:Boolean,attribute:"aria-readonly",converter:{toAttribute:e=>e}})],k.prototype,"readonly",2),a([p({reflect:!0,type:Boolean,attribute:"aria-checked",converter:{toAttribute:e=>e}})],k.prototype,"checked",2),a([T("disabled",{waitUntilFirstUpdate:!0})],k.prototype,"handleDisabledChange",1);var us=b`
25
+ </xsl:stylesheet>`;function Qs(i){let t=[];return i.querySelectorAll("qti-assessment-item-ref").forEach(e=>{let r=e.getAttribute("identifier"),s=e.getAttribute("href"),o=e.getAttribute("category");t.push({identifier:r,href:s,category:o})}),t}var ir=null;function or(i,t=!0){return t&&ir!==null&&ir.abort(),new Promise((e,r)=>{let s=new XMLHttpRequest;ir=s,s.open("GET",i,!0),s.responseType="document",s.onload=()=>{s.status>=200&&s.status<300?e(s.responseXML):r(s.statusText)},s.onerror=()=>{r(s.statusText)},s.send()})}function nr(i){return new DOMParser().parseFromString(i,"text/xml")}function Ct(i){let t=new XSLTProcessor,e=new DOMParser().parseFromString(Gs,"text/xml");return t.importStylesheet(e),t.transformToFragment(i,document)}function ei(i,t){t.endsWith("/")||(t+="/"),i.querySelectorAll("[src],[href],[primary-path]").forEach(e=>{var o;let r="";e.getAttribute("src")&&(r="src"),e.getAttribute("href")&&(r="href"),e.getAttribute("primary-path")&&(r="primary-path");let s=(o=e.getAttribute(r))==null?void 0:o.trim();if(!s.startsWith("data:")&&!s.startsWith("http")){let n=t+encodeURI(s);e.setAttribute(r,n)}})}function ti(i){i.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(e=>{let r=document.createComment(e.textContent);e.replaceChild(r,e.firstChild)})}function ri(i){i.querySelectorAll("qti-stylesheet").forEach(t=>t.remove())}var Ae=class extends g{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0});if(this.dispatchEvent(e)){let o=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);o?await this.loadAndAppendStimulus(o):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async loadAndAppendStimulus(e){let r=this.href.substring(0,this.href.lastIndexOf("/")),s=await ds().load(this.href).then(o=>o.path(r).htmldoc());if(s){let o=s.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.append(...o)}}};a([p({type:String})],Ae.prototype,"identifier",2),a([p({type:String})],Ae.prototype,"href",2),Ae=a([m("qti-assessment-stimulus-ref")],Ae);var si={SPACE:32},M=class extends g{constructor(){super(...arguments);this.tabindex=0;this.disabled=!1;this.readonly=!1;this.checked=!1}handleDisabledChange(e,r){r?(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 si.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"),u` <slot></slot> `}};a([p({type:String})],M.prototype,"identifier",2),a([p({type:Number,reflect:!0})],M.prototype,"tabindex",2),a([p({reflect:!0,type:Boolean,attribute:"aria-disabled",converter:{toAttribute:e=>e}})],M.prototype,"disabled",2),a([p({reflect:!0,type:Boolean,attribute:"aria-readonly",converter:{toAttribute:e=>e}})],M.prototype,"readonly",2),a([p({reflect:!0,type:Boolean,attribute:"aria-checked",converter:{toAttribute:e=>e}})],M.prototype,"checked",2),a([S("disabled",{waitUntilFirstUpdate:!0})],M.prototype,"handleDisabledChange",1);var us=b`
26
26
  :host {
27
27
  display: block;
28
28
  }
29
- `;var qe=class extends g{render(){return u`<slot name="qti-rubric-block"></slot><slot></slot>`}};qe.styles=us,qe=a([m("qti-item-body")],qe);var At=class extends g{render(){return u`<slot></slot>`}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};At=a([m("qti-prompt")],At);var qt=class extends g{firstUpdated(t){super.firstUpdated(t);let e=this,r=this.getAttribute("href");if(r!==null){let s=document.createElement("link");s.rel="stylesheet",s.type="text/css",s.media="screen",s.href=r,e.appendChild(s),this.styleLink=s}if(this.textContent!==null){let s=document.createElement("style");s.media="screen",s.textContent=this.textContent,e.appendChild(s),this.styleLink=s}}disconnectedCallback(){if(this.styleLink)try{this.styleLink.remove()}catch(t){console.log("could not remove stylesheet")}}};qt=a([m("qti-stylesheet")],qt);var ie=class extends g{render(){return u`<slot></slot>`}defaultValues(t){let e=Array.from(this.querySelectorAll("qti-default-value > qti-value"));if(e.length===0)return null;let r=e.map(s=>s.innerHTML);return r.length>1||t.cardinality==="multiple"||t.cardinality==="ordered"?r:r[0]}};ie=a([m("qti-variabledeclaration")],ie);var I=class extends ie{render(){var e,r;let t=(r=(e=this.itemContext)==null?void 0:e.variables.find(s=>s.identifier===this.identifier))==null?void 0:r.value;return u`${JSON.stringify(t,null,2)}`}get interpolationTable(){let t=this.querySelector("qti-interpolation-table");if(t){let e=new Map;for(let r of t.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 s=parseInt(r.getAttribute("source-value")),n=parseInt(r.getAttribute("target-value"));(isNaN(s)||isNaN(n))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),e.set(s,n)}return e}return null}connectedCallback(){super.connectedCallback();let t={identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,type:"outcome",value:null,interpolationTable:this.interpolationTable};t.value=this.defaultValues(t),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:t}}))}};I.styles=[b`
29
+ `;var qe=class extends g{render(){return u`<slot name="qti-rubric-block"></slot><slot></slot>`}};qe.styles=us,qe=a([m("qti-item-body")],qe);var At=class extends g{render(){return u`<slot></slot>`}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};At=a([m("qti-prompt")],At);var qt=class extends g{firstUpdated(t){super.firstUpdated(t);let e=this,r=this.getAttribute("href");if(r!==null){let s=document.createElement("link");s.rel="stylesheet",s.type="text/css",s.media="screen",s.href=r,e.appendChild(s),this.styleLink=s}if(this.textContent!==null){let s=document.createElement("style");s.media="screen",s.textContent=this.textContent,e.appendChild(s),this.styleLink=s}}disconnectedCallback(){if(this.styleLink)try{this.styleLink.remove()}catch(t){console.log("could not remove stylesheet")}}};qt=a([m("qti-stylesheet")],qt);var ie=class extends g{render(){return u`<slot></slot>`}defaultValues(t){let e=Array.from(this.querySelectorAll("qti-default-value > qti-value"));if(e.length===0)return null;let r=e.map(s=>s.innerHTML);return r.length>1||t.cardinality==="multiple"||t.cardinality==="ordered"?r:r[0]}};ie=a([m("qti-variabledeclaration")],ie);var I=class extends ie{render(){var e,r;let t=(r=(e=this.itemContext)==null?void 0:e.variables.find(s=>s.identifier===this.identifier))==null?void 0:r.value;return u`${JSON.stringify(t,null,2)}`}get interpolationTable(){let t=this.querySelector("qti-interpolation-table");if(t){let e=new Map;for(let r of t.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 s=parseInt(r.getAttribute("source-value")),o=parseInt(r.getAttribute("target-value"));(isNaN(s)||isNaN(o))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),e.set(s,o)}return e}return null}connectedCallback(){super.connectedCallback();let t={identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,type:"outcome",value:null,interpolationTable:this.interpolationTable};t.value=this.defaultValues(t),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:t}}))}};I.styles=[b`
30
30
  :host {
31
31
  display: none;
32
32
  }
@@ -38,7 +38,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
38
38
  :host {
39
39
  display: block;
40
40
  }
41
- `,a([p({type:String})],F.prototype,"id",2),a([p({type:String})],F.prototype,"use",2),a([p({type:String})],F.prototype,"view",2),a([p({type:String,attribute:"class"})],F.prototype,"classNames",2),a([T("classNames",{waitUntilFirstUpdate:!0})],F.prototype,"handleclassNamesChange",1),F=a([m("qti-rubric-block")],F);var ii=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),Be=i=>{if(typeof i=="string")return i;let t=ii();return t==="."?i.toLocaleString():i.toString().replace(".","").replace(t,".")};function ar(i){return i==null}function je(i){return i.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}var N=class extends g{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(t){let e=this.closest("qti-assessment-item").getOutcome(t);if(this.outcomeIdentifier!==t||!e)return;let r=!1;Array.isArray(e.value)?r=e.value.includes(this.identifier):r=!ar(this.identifier)&&!ar(e==null?void 0:e.value)&&this.identifier===e.value||!1,this.showFeedback(r)}showFeedback(t){this.showStatus=t&&this.showHide==="show"||!t&&this.showHide==="hide"?"on":"off"}};a([p({type:String,attribute:"show-hide"})],N.prototype,"showHide",2),a([p({type:String,attribute:"outcome-identifier"})],N.prototype,"outcomeIdentifier",2),a([p({type:String})],N.prototype,"identifier",2),a([p({type:String,attribute:!1})],N.prototype,"showStatus",2);var Xe=class extends N{render(){return u` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}firstUpdated(t){this.checkShowFeedback(this.outcomeIdentifier)}};Xe.styles=b`
41
+ `,a([p({type:String})],F.prototype,"id",2),a([p({type:String})],F.prototype,"use",2),a([p({type:String})],F.prototype,"view",2),a([p({type:String,attribute:"class"})],F.prototype,"classNames",2),a([S("classNames",{waitUntilFirstUpdate:!0})],F.prototype,"handleclassNamesChange",1),F=a([m("qti-rubric-block")],F);var ii=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),Be=i=>{if(typeof i=="string")return i;let t=ii();return t==="."?i.toLocaleString():i.toString().replace(".","").replace(t,".")};function ar(i){return i==null}function Xe(i){return i.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}var P=class extends g{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(t){let e=this.closest("qti-assessment-item").getOutcome(t);if(this.outcomeIdentifier!==t||!e)return;let r=!1;Array.isArray(e.value)?r=e.value.includes(this.identifier):r=!ar(this.identifier)&&!ar(e==null?void 0:e.value)&&this.identifier===e.value||!1,this.showFeedback(r)}showFeedback(t){this.showStatus=t&&this.showHide==="show"||!t&&this.showHide==="hide"?"on":"off"}};a([p({type:String,attribute:"show-hide"})],P.prototype,"showHide",2),a([p({type:String,attribute:"outcome-identifier"})],P.prototype,"outcomeIdentifier",2),a([p({type:String})],P.prototype,"identifier",2),a([p({type:String,attribute:!1})],P.prototype,"showStatus",2);var je=class extends P{render(){return u` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}firstUpdated(t){this.checkShowFeedback(this.outcomeIdentifier)}};je.styles=b`
42
42
  :host {
43
43
  display: block;
44
44
  }
@@ -48,21 +48,21 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
48
48
  .off {
49
49
  display: none;
50
50
  }
51
- `,Xe=a([m("qti-feedback-block")],Xe);var Ye=class extends N{constructor(){super(...arguments);this.render=()=>u` <slot part="feedback" class="${this.showStatus}"></slot> `}};Ye.styles=b`
51
+ `,je=a([m("qti-feedback-block")],je);var Ye=class extends P{constructor(){super(...arguments);this.render=()=>u` <slot part="feedback" class="${this.showStatus}"></slot> `}};Ye.styles=b`
52
52
  .on {
53
53
  display: inline-block;
54
54
  }
55
55
  .off {
56
56
  display: none;
57
57
  }
58
- `,Ye=a([m("qti-feedback-inline")],Ye);var ze=class extends N{constructor(){super(...arguments);this.render=()=>u` <slot part="feedback" class="${this.showStatus}"></slot> `}};ze.styles=b`
58
+ `,Ye=a([m("qti-feedback-inline")],Ye);var ze=class extends P{constructor(){super(...arguments);this.render=()=>u` <slot part="feedback" class="${this.showStatus}"></slot> `}};ze.styles=b`
59
59
  .on {
60
60
  display: inline-block;
61
61
  }
62
62
  .off {
63
63
  display: none;
64
64
  }
65
- `,ze=a([m("qti-modal-feedback")],ze);var B=i=>i!=null?i:C;var q=class extends g{constructor(){super(...arguments);this.responseIdentifier="";this.disabled=!1;this.readonly=!1}set correctResponse(e){console.warn("correctResponse is not implemented")}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:Array.isArray(e)?[...e]:e}}))}};a([p({attribute:"response-identifier"})],q.prototype,"responseIdentifier",2),a([p({reflect:!0,type:Boolean})],q.prototype,"disabled",2),a([p({reflect:!0,type:Boolean})],q.prototype,"readonly",2);var{I:oi}=os;var ms=i=>i.strings===void 0,hs=()=>document.createComment(""),we=(i,t,e)=>{var n;let r=i._$AA.parentNode,s=t===void 0?i._$AB:t._$AA;if(e===void 0){let o=r.insertBefore(hs(),s),l=r.insertBefore(hs(),s);e=new oi(o,l,i,i.options)}else{let o=e._$AB.nextSibling,l=e._$AM,c=l!==i;if(c){let d;(n=e._$AQ)==null||n.call(e,i),e._$AM=i,e._$AP!==void 0&&(d=i._$AU)!==l._$AU&&e._$AP(d)}if(o!==s||c){let d=e._$AA;for(;d!==o;){let h=d.nextSibling;r.insertBefore(d,s),d=h}}}return e},oe=(i,t,e=i)=>(i._$AI(t,e),i),ni={},fs=(i,t=ni)=>i._$AH=t,gs=i=>i._$AH,Tt=i=>{var r;(r=i._$AP)==null||r.call(i,!1,!0);let t=i._$AA,e=i._$AB.nextSibling;for(;t!==e;){let s=t.nextSibling;t.remove(),t=s}};var ne={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ee=i=>(...t)=>({_$litDirective$:i,values:t}),j=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,r){this.t=t,this._$AM=e,this.i=r}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var We=(i,t)=>{var r;let e=i._$AN;if(e===void 0)return!1;for(let s of e)(r=s._$AO)==null||r.call(s,t,!1),We(s,t);return!0},Rt=i=>{let t,e;do{if((t=i._$AM)===void 0)break;e=t._$AN,e.delete(i),i=t}while((e==null?void 0:e.size)===0)},bs=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),ci(t)}};function ai(i){this._$AN!==void 0?(Rt(this),this._$AM=i,bs(this)):this._$AM=i}function li(i,t=!1,e=0){let r=this._$AH,s=this._$AN;if(s!==void 0&&s.size!==0)if(t)if(Array.isArray(r))for(let n=e;n<r.length;n++)We(r[n],!1),Rt(r[n]);else r!=null&&(We(r,!1),Rt(r));else We(this,i)}var ci=i=>{var t,e;i.type==ne.CHILD&&((t=i._$AP)!=null||(i._$AP=li),(e=i._$AQ)!=null||(i._$AQ=ai))},$t=class extends j{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,r){super._$AT(t,e,r),bs(this),this.isConnected=t._$AU}_$AO(t,e=!0){var r,s;t!==this.isConnected&&(this.isConnected=t,t?(r=this.reconnected)==null||r.call(this):(s=this.disconnected)==null||s.call(this)),e&&(We(this,t),Rt(this))}setValue(t){if(ms(this.t))this.t._$AI(t,this);else{let e=[...this.t._$AH];e[this.i]=t,this.t._$AI(e,this,0)}}disconnected(){}reconnected(){}};var Mt=()=>new cr,cr=class{},lr=new WeakMap,vs=ee(class extends $t{render(i){return C}update(i,[t]){var r;let e=t!==this.Y;return e&&this.Y!==void 0&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.Y=t,this.ht=(r=i.options)==null?void 0:r.host,this.rt(this.ct=i.element)),C}rt(i){var t;if(this.isConnected||(i=void 0),typeof this.Y=="function"){let e=(t=this.ht)!=null?t:globalThis,r=lr.get(e);r===void 0&&(r=new WeakMap,lr.set(e,r)),r.get(this.Y)!==void 0&&this.Y.call(this.ht,void 0),r.set(this.Y,i),i!==void 0&&this.Y.call(this.ht,i)}else this.Y.value=i}get lt(){var i,t,e;return typeof this.Y=="function"?(t=lr.get((i=this.ht)!=null?i:globalThis))==null?void 0:t.get(this.Y):(e=this.Y)==null?void 0:e.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var X=class extends q{constructor(){super(...arguments);this.textareaRef=Mt();this._value=""}handleclassNamesChange(e,r){this.classNames.split(" ").forEach(n=>{if(n.startsWith("qti-height-lines")){let o=n.replace("qti-height-lines-","");this.textareaRef&&(this.textareaRef.value.rows=parseInt(o))}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[b`
65
+ `,ze=a([m("qti-modal-feedback")],ze);var B=i=>i!=null?i:C;var q=class extends g{constructor(){super(...arguments);this.responseIdentifier="";this.disabled=!1;this.readonly=!1}set correctResponse(e){console.warn("correctResponse is not implemented")}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:Array.isArray(e)?[...e]:e}}))}};a([p({attribute:"response-identifier"})],q.prototype,"responseIdentifier",2),a([p({reflect:!0,type:Boolean})],q.prototype,"disabled",2),a([p({reflect:!0,type:Boolean})],q.prototype,"readonly",2);var{I:oi}=os;var ms=i=>i.strings===void 0,hs=()=>document.createComment(""),we=(i,t,e)=>{var o;let r=i._$AA.parentNode,s=t===void 0?i._$AB:t._$AA;if(e===void 0){let n=r.insertBefore(hs(),s),l=r.insertBefore(hs(),s);e=new oi(n,l,i,i.options)}else{let n=e._$AB.nextSibling,l=e._$AM,c=l!==i;if(c){let d;(o=e._$AQ)==null||o.call(e,i),e._$AM=i,e._$AP!==void 0&&(d=i._$AU)!==l._$AU&&e._$AP(d)}if(n!==s||c){let d=e._$AA;for(;d!==n;){let h=d.nextSibling;r.insertBefore(d,s),d=h}}}return e},oe=(i,t,e=i)=>(i._$AI(t,e),i),ni={},fs=(i,t=ni)=>i._$AH=t,gs=i=>i._$AH,Rt=i=>{var r;(r=i._$AP)==null||r.call(i,!1,!0);let t=i._$AA,e=i._$AB.nextSibling;for(;t!==e;){let s=t.nextSibling;t.remove(),t=s}};var ne={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},ee=i=>(...t)=>({_$litDirective$:i,values:t}),X=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,r){this.t=t,this._$AM=e,this.i=r}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var We=(i,t)=>{var r;let e=i._$AN;if(e===void 0)return!1;for(let s of e)(r=s._$AO)==null||r.call(s,t,!1),We(s,t);return!0},Tt=i=>{let t,e;do{if((t=i._$AM)===void 0)break;e=t._$AN,e.delete(i),i=t}while((e==null?void 0:e.size)===0)},bs=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),ci(t)}};function ai(i){this._$AN!==void 0?(Tt(this),this._$AM=i,bs(this)):this._$AM=i}function li(i,t=!1,e=0){let r=this._$AH,s=this._$AN;if(s!==void 0&&s.size!==0)if(t)if(Array.isArray(r))for(let o=e;o<r.length;o++)We(r[o],!1),Tt(r[o]);else r!=null&&(We(r,!1),Tt(r));else We(this,i)}var ci=i=>{var t,e;i.type==ne.CHILD&&((t=i._$AP)!=null||(i._$AP=li),(e=i._$AQ)!=null||(i._$AQ=ai))},$t=class extends X{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,r){super._$AT(t,e,r),bs(this),this.isConnected=t._$AU}_$AO(t,e=!0){var r,s;t!==this.isConnected&&(this.isConnected=t,t?(r=this.reconnected)==null||r.call(this):(s=this.disconnected)==null||s.call(this)),e&&(We(this,t),Tt(this))}setValue(t){if(ms(this.t))this.t._$AI(t,this);else{let e=[...this.t._$AH];e[this.i]=t,this.t._$AI(e,this,0)}}disconnected(){}reconnected(){}};var kt=()=>new cr,cr=class{},lr=new WeakMap,vs=ee(class extends $t{render(i){return C}update(i,[t]){var r;let e=t!==this.Y;return e&&this.Y!==void 0&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.Y=t,this.ht=(r=i.options)==null?void 0:r.host,this.rt(this.ct=i.element)),C}rt(i){var t;if(this.isConnected||(i=void 0),typeof this.Y=="function"){let e=(t=this.ht)!=null?t:globalThis,r=lr.get(e);r===void 0&&(r=new WeakMap,lr.set(e,r)),r.get(this.Y)!==void 0&&this.Y.call(this.ht,void 0),r.set(this.Y,i),i!==void 0&&this.Y.call(this.ht,i)}else this.Y.value=i}get lt(){var i,t,e;return typeof this.Y=="function"?(t=lr.get((i=this.ht)!=null?i:globalThis))==null?void 0:t.get(this.Y):(e=this.Y)==null?void 0:e.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var j=class extends q{constructor(){super(...arguments);this.textareaRef=kt();this._value=""}handleclassNamesChange(e,r){this.classNames.split(" ").forEach(o=>{if(o.startsWith("qti-height-lines")){let n=o.replace("qti-height-lines-","");this.textareaRef&&(this.textareaRef.value.rows=parseInt(n))}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[b`
66
66
  /* PK: display host as block, else design will be collapsed */
67
67
  :host {
68
68
  display: block;
@@ -88,7 +88,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
88
88
  ?disabled="${this.disabled}"
89
89
  ?readonly="${this.readonly}"
90
90
  .value=${this._value}
91
- ></textarea>`}textChanged(e){if(this.disabled||this.readonly)return;let r=e.target;this.setEmptyAttribute(r.value),this._value!==r.value&&(this._value=r.value,this.saveResponse(r.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};a([p({type:Number,attribute:"expected-length"})],X.prototype,"expectedLength",2),a([p({type:String,attribute:"pattern-mask"})],X.prototype,"patternMask",2),a([p({type:String,attribute:"placeholder-text"})],X.prototype,"placeholderText",2),a([E()],X.prototype,"_value",2),a([p({type:String,attribute:"class"})],X.prototype,"classNames",2),a([T("classNames",{waitUntilFirstUpdate:!0})],X.prototype,"handleclassNamesChange",1),X=a([m("qti-extended-text-interaction")],X);function ys(i,t){let e,r=_({},t);return(s,n)=>{let{connectedCallback:o,disconnectedCallback:l}=s;s.connectedCallback=function(){var h;o.call(this);let c=f=>{let y=Array.from(this.querySelectorAll(i));for(let v of f){let A=Array.from(v.addedNodes).map(R=>R),w=Array.from(v.addedNodes).map(R=>R);v.type==="childList"&&A.find(R=>y.includes(R))&&this[n](A,w)}};e=new MutationObserver(c),e.observe(this,{childList:!0,subtree:!0});let d=(h=this.querySelectorAll(i))!=null?h:[];this[n](Array.from(d),[])},s.disconnectedCallback=function(){l.call(this),e.disconnect()}}}var P=class extends q{constructor(){super(...arguments);this._value="";this._correctValue="";this._size=5;this.inputRef=Mt()}handleclassNamesChange(e,r){r.split(" ").forEach(n=>{if(n.startsWith("qti-input-width")){let o=n.replace("qti-input-width-","");this._size=parseInt(o)}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[b`
91
+ ></textarea>`}textChanged(e){if(this.disabled||this.readonly)return;let r=e.target;this.setEmptyAttribute(r.value),this._value!==r.value&&(this._value=r.value,this.saveResponse(r.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};a([p({type:Number,attribute:"expected-length"})],j.prototype,"expectedLength",2),a([p({type:String,attribute:"pattern-mask"})],j.prototype,"patternMask",2),a([p({type:String,attribute:"placeholder-text"})],j.prototype,"placeholderText",2),a([E()],j.prototype,"_value",2),a([p({type:String,attribute:"class"})],j.prototype,"classNames",2),a([S("classNames",{waitUntilFirstUpdate:!0})],j.prototype,"handleclassNamesChange",1),j=a([m("qti-extended-text-interaction")],j);function ys(i,t){let e,r=_({},t);return(s,o)=>{let{connectedCallback:n,disconnectedCallback:l}=s;s.connectedCallback=function(){var h;n.call(this);let c=f=>{let y=Array.from(this.querySelectorAll(i));for(let v of f){let A=Array.from(v.addedNodes).map(T=>T),w=Array.from(v.addedNodes).map(T=>T);v.type==="childList"&&A.find(T=>y.includes(T))&&this[o](A,w)}};e=new MutationObserver(c),e.observe(this,{childList:!0,subtree:!0});let d=(h=this.querySelectorAll(i))!=null?h:[];this[o](Array.from(d),[])},s.disconnectedCallback=function(){l.call(this),e.disconnect()}}}var N=class extends q{constructor(){super(...arguments);this._value="";this._correctValue="";this._size=5;this.inputRef=kt()}handleclassNamesChange(e,r){r.split(" ").forEach(o=>{if(o.startsWith("qti-input-width")){let n=o.replace("qti-input-width-","");this._size=parseInt(n)}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[b`
92
92
  [part='correct'] {
93
93
  position: absolute;
94
94
  width: 100%;
@@ -110,7 +110,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
110
110
  ?readonly="${this.readonly}"
111
111
  />
112
112
  <div part="correct">${this._correctValue}</div>
113
- `}textChanged(e){if(this.disabled||this.readonly)return;let r=e.target;this.setEmptyAttribute(r.value),this._value!==r.value&&(this._value=r.value,this.saveResponse(r.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};a([p({type:Number,attribute:"expected-length"})],P.prototype,"expectedLength",2),a([p({type:String,attribute:"pattern-mask"})],P.prototype,"patternMask",2),a([p({type:String,attribute:"placeholder-text"})],P.prototype,"placeholderText",2),a([E()],P.prototype,"_value",2),a([E()],P.prototype,"_correctValue",2),a([E()],P.prototype,"_size",2),a([p({type:String,attribute:"class"})],P.prototype,"classNames",2),a([T("classNames")],P.prototype,"handleclassNamesChange",1),P=a([m("qti-text-entry-interaction")],P);var $=class extends q{constructor(){super();this._choiceElements=[];this.minChoices=0;this.maxChoices=1;this._handleDisabledChange=(e,r)=>this._choiceElements.forEach(s=>s.disabled=r);this._handleReadonlyChange=(e,r)=>this._choiceElements.forEach(s=>s.readonly=r);this._handleMaxChoicesChange=()=>this._determineInputType();this.addEventListener("qti-register-choice",this._registerChoiceElement),this.addEventListener("qti-loose-choice",this._looseChoiceElement)}validate(){return this._choiceElements.reduce((r,s)=>r+(s.checked?1:0),0)>=this.minChoices}set response(e){let r=Array.isArray(e)?e:[e];this._choiceElements.forEach(s=>{s.checked=!!r.find(n=>n===s.identifier)})}set correctResponse(e){let r=Array.isArray(e)?e:[e];if(e==""){this._choiceElements.forEach(s=>{s.removeAttribute("data-correct-response")});return}this._choiceElements.forEach(s=>{s.setAttribute("data-correct-response",r.find(n=>n===s.identifier)?"true":"false")})}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 r=e.target;this._choiceElements.push(r),this._setInputType(r)}_looseChoiceElement(e){e.stopPropagation();let r=e.target;this._choiceElements.push(r),this._choiceElements=this._choiceElements.filter(s=>s!==r)}_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(r=>r.identifier!==e.detail.identifier).forEach(r=>{r.checked=!1}),this._choiceElementSelected()}_choiceElementSelected(){let e=this._choiceElements.filter(s=>s.checked).map(s=>s.identifier);this.maxChoices>1&&(this.maxChoices===e.length?this._choiceElements.forEach(s=>s.disabled=!s.checked):this._choiceElements.forEach(s=>s.disabled=!1));let r;this.maxChoices===1?r=e.length>0?e[0]:void 0:r=e,this.saveResponse(r)}};a([p({type:Number,attribute:"min-choices"})],$.prototype,"minChoices",2),a([p({type:Number,attribute:"max-choices"})],$.prototype,"maxChoices",2),a([T("disabled",{waitUntilFirstUpdate:!0})],$.prototype,"_handleDisabledChange",2),a([T("readonly",{waitUntilFirstUpdate:!0})],$.prototype,"_handleReadonlyChange",2),a([T("maxChoices",{waitUntilFirstUpdate:!0})],$.prototype,"_handleMaxChoicesChange",2);var kt=class extends ${constructor(){super(...arguments);this.render=()=>u`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};kt=a([m("qti-hottext-interaction")],kt);var Ke=class extends j{constructor(t){if(super(t),this.it=C,t.type!==ne.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===C||t==null)return this._t=void 0,this.it=t;if(t===L)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;let e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};Ke.directiveName="unsafeHTML",Ke.resultType=1;var ae=ee(Ke);var le=class extends q{constructor(){super(...arguments);this.options=[];this.correctOption="";this.dataPrompt="select"}static get styles(){return[b`
113
+ `}textChanged(e){if(this.disabled||this.readonly)return;let r=e.target;this.setEmptyAttribute(r.value),this._value!==r.value&&(this._value=r.value,this.saveResponse(r.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};a([p({type:Number,attribute:"expected-length"})],N.prototype,"expectedLength",2),a([p({type:String,attribute:"pattern-mask"})],N.prototype,"patternMask",2),a([p({type:String,attribute:"placeholder-text"})],N.prototype,"placeholderText",2),a([E()],N.prototype,"_value",2),a([E()],N.prototype,"_correctValue",2),a([E()],N.prototype,"_size",2),a([p({type:String,attribute:"class"})],N.prototype,"classNames",2),a([S("classNames")],N.prototype,"handleclassNamesChange",1),N=a([m("qti-text-entry-interaction")],N);var $=class extends q{constructor(){super();this._choiceElements=[];this.minChoices=0;this.maxChoices=1;this._handleDisabledChange=(e,r)=>this._choiceElements.forEach(s=>s.disabled=r);this._handleReadonlyChange=(e,r)=>this._choiceElements.forEach(s=>s.readonly=r);this._handleMaxChoicesChange=()=>this._determineInputType();this.addEventListener("qti-register-choice",this._registerChoiceElement),this.addEventListener("qti-loose-choice",this._looseChoiceElement)}validate(){return this._choiceElements.reduce((r,s)=>r+(s.checked?1:0),0)>=this.minChoices}set response(e){let r=Array.isArray(e)?e:[e];this._choiceElements.forEach(s=>{s.checked=!!r.find(o=>o===s.identifier)})}set correctResponse(e){let r=Array.isArray(e)?e:[e];if(e==""){this._choiceElements.forEach(s=>{s.removeAttribute("data-correct-response")});return}this._choiceElements.forEach(s=>{s.setAttribute("data-correct-response",r.find(o=>o===s.identifier)?"true":"false")})}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 r=e.target;this._choiceElements.push(r),this._setInputType(r)}_looseChoiceElement(e){e.stopPropagation();let r=e.target;this._choiceElements.push(r),this._choiceElements=this._choiceElements.filter(s=>s!==r)}_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(r=>r.identifier!==e.detail.identifier).forEach(r=>{r.checked=!1}),this._choiceElementSelected()}_choiceElementSelected(){let e=this._choiceElements.filter(s=>s.checked).map(s=>s.identifier);this.maxChoices>1&&(this.maxChoices===e.length?this._choiceElements.forEach(s=>s.disabled=!s.checked):this._choiceElements.forEach(s=>s.disabled=!1));let r;this.maxChoices===1?r=e.length>0?e[0]:void 0:r=e,this.saveResponse(r)}};a([p({type:Number,attribute:"min-choices"})],$.prototype,"minChoices",2),a([p({type:Number,attribute:"max-choices"})],$.prototype,"maxChoices",2),a([S("disabled",{waitUntilFirstUpdate:!0})],$.prototype,"_handleDisabledChange",2),a([S("readonly",{waitUntilFirstUpdate:!0})],$.prototype,"_handleReadonlyChange",2),a([S("maxChoices",{waitUntilFirstUpdate:!0})],$.prototype,"_handleMaxChoicesChange",2);var Mt=class extends ${constructor(){super(...arguments);this.render=()=>u`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};Mt=a([m("qti-hottext-interaction")],Mt);var Ke=class extends X{constructor(t){if(super(t),this.it=C,t.type!==ne.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===C||t==null)return this._t=void 0,this.it=t;if(t===L)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;let e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};Ke.directiveName="unsafeHTML",Ke.resultType=1;var ae=ee(Ke);var le=class extends q{constructor(){super(...arguments);this.options=[];this.correctOption="";this.dataPrompt="select"}static get styles(){return[b`
114
114
  :host {
115
115
  display: inline-block;
116
116
  }
@@ -122,7 +122,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
122
122
  </select>
123
123
 
124
124
  ${ae(this.correctOption)}
125
- `}connectedCallback(){super.connectedCallback(),this.addEventListener("on-dropdown-selected",this.choiceSelected);let e=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...e.map(r=>({textContent:r.innerHTML,value:r.getAttribute("identifier"),selected:!1}))]}disconnectedCallback(){this.removeEventListener("on-dropdown-selected",this.choiceSelected)}validate(){let e=this.options.find(r=>r.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,r)=>S(_({},e),{selected:r===0}))}set response(e){this.options=this.options.map(r=>(e===r.value&&(r.selected=!0),r))}set correctResponse(e){if(e===""){this.correctOption="";return}this.correctOption=`<span part="correct-option">${this.options.find(r=>e===r.value).textContent}</span>`}choiceSelected(e){let r=e.target.value;this.options=this.options.map(s=>S(_({},s),{selected:s.value===r})),this.saveResponse(r)}};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"],a([E()],le.prototype,"options",2),a([E()],le.prototype,"correctOption",2),a([p({attribute:"data-prompt",type:String})],le.prototype,"dataPrompt",2),le=a([m("qti-inline-choice-interaction")],le);var xs=b`
125
+ `}connectedCallback(){super.connectedCallback(),this.addEventListener("on-dropdown-selected",this.choiceSelected);let e=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...e.map(r=>({textContent:r.innerHTML,value:r.getAttribute("identifier"),selected:!1}))]}disconnectedCallback(){this.removeEventListener("on-dropdown-selected",this.choiceSelected)}validate(){let e=this.options.find(r=>r.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,r)=>R(_({},e),{selected:r===0}))}set response(e){this.options=this.options.map(r=>(e===r.value&&(r.selected=!0),r))}set correctResponse(e){if(e===""){this.correctOption="";return}this.correctOption=`<span part="correct-option">${this.options.find(r=>e===r.value).textContent}</span>`}choiceSelected(e){let r=e.target.value;this.options=this.options.map(s=>R(_({},s),{selected:s.value===r})),this.saveResponse(r)}};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"],a([E()],le.prototype,"options",2),a([E()],le.prototype,"correctOption",2),a([p({attribute:"data-prompt",type:String})],le.prototype,"dataPrompt",2),le=a([m("qti-inline-choice-interaction")],le);var xs=b`
126
126
  :host {
127
127
  display: flex;
128
128
  flex-direction: column;
@@ -185,20 +185,20 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
185
185
  :host {
186
186
  display: none;
187
187
  }
188
- `],be=a([m("qti-response-processing")],be);var Y=class extends g{render(){return u`<slot></slot>`}process(){throw new Error("Not implemented")}};Y=a([m("qti-rule")],Y);var Lt=class extends Y{get childExpression(){return this.firstElementChild}process(){let t=this.getAttribute("identifier"),e=this.closest("qti-assessment-item").getVariable(t),r;return e.interpolationTable&&(r=e.interpolationTable.get(parseInt(this.childExpression.calculate()))),r==null?(console.warn("lookupOutcomeValue: value is null or undefined"),0):(this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:this.identifier,value:Be(r)}})),r)}};a([p({type:String})],Lt.prototype,"identifier",2);customElements.define("qti-lookup-outcome-value",Lt);var dr=class extends Y{render(){return u`<slot></slot>`}process(){let t=[...this.children];for(let e=0;e<t.length;e++){let r=t[e];if(r.calculate()){r.process();return}}}};customElements.define("qti-response-condition",dr);var ur=class extends Y{process(){let t=this.getAttribute("identifier"),e=this.firstElementChild,s=new hr(e).process();this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:t,value:Array.isArray(s)?s.map(n=>Be(n)):Be(s)}}))}},hr=class{constructor(t){this.expression=t}process(){let t=this.expression?this.expression.calculate():null;if(t==null){console.warn("setOutcomeValue: value is null or undefined");return}return t}};customElements.define("qti-set-outcome-value",ur);var Ze=class extends g{render(){return u`<slot></slot>`}calculate(){return!0}getSubRules(){return[...this.children]}process(){let t=this.getSubRules();for(let e=0;e<t.length;e++)t[e].process()}};customElements.define("qti-response-else",Ze);var Ge=class extends Ze{calculate(){return this.firstElementChild.calculate()}getSubRules(){let t=[];for(let e=1;e<this.children.length;e++)t.push(this.children[e]);return t}};customElements.define("qti-response-if",Ge);var mr=class extends Ge{render(){return u`${super.render()}`}};customElements.define("qti-response-else-if",mr);var x=class extends g{constructor(){super(...arguments);this.getVariables=()=>Array.from(this.children).map(e=>{switch(e.tagName.toLowerCase()){case"qti-base-value":return{baseType:e.getAttribute("base-type"),value:e.textContent,cardinality:"single"};case"qti-variable":{let r=e.getAttribute("identifier")||"";return this.assessmentItem.getVariable(r)}case"qti-multiple":{let s=e.getResult();return s.length>0?{identifier:"",baseType:s[0].baseType,value:s.map(n=>n.value),cardinality:"multiple",type:"response"}:null}case"qti-correct":{let r=e.getAttribute("identifier")||"",s=this.assessmentItem.getResponse(r);return{baseType:s.baseType,value:s.correctResponse,cardinality:s.cardinality}}default:{try{return{baseType:"integer",value:e.getResult().toString(),cardinality:"single"}}catch(r){console.warn("default not sufficient")}return null}}}).filter(e=>e!==null)}render(){return u`<pre>${JSON.stringify(this.result,null,2)}</pre>
188
+ `],be=a([m("qti-response-processing")],be);var Y=class extends g{render(){return u`<slot></slot>`}process(){throw new Error("Not implemented")}};Y=a([m("qti-rule")],Y);var Lt=class extends Y{get childExpression(){return this.firstElementChild}process(){let t=this.getAttribute("identifier"),e=this.closest("qti-assessment-item").getVariable(t),r;return e.interpolationTable&&(r=e.interpolationTable.get(parseInt(this.childExpression.calculate()))),r==null?(console.warn("lookupOutcomeValue: value is null or undefined"),0):(this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:this.identifier,value:Be(r)}})),r)}};a([p({type:String})],Lt.prototype,"identifier",2);customElements.define("qti-lookup-outcome-value",Lt);var dr=class extends Y{render(){return u`<slot></slot>`}process(){let t=[...this.children];for(let e=0;e<t.length;e++){let r=t[e];if(r.calculate()){r.process();return}}}};customElements.define("qti-response-condition",dr);var ur=class extends Y{process(){let t=this.getAttribute("identifier"),e=this.firstElementChild,s=new hr(e).process();this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:t,value:Array.isArray(s)?s.map(o=>Be(o)):Be(s)}}))}},hr=class{constructor(t){this.expression=t}process(){let t=this.expression?this.expression.calculate():null;if(t==null){console.warn("setOutcomeValue: value is null or undefined");return}return t}};customElements.define("qti-set-outcome-value",ur);var Ze=class extends g{render(){return u`<slot></slot>`}calculate(){return!0}getSubRules(){return[...this.children]}process(){let t=this.getSubRules();for(let e=0;e<t.length;e++)t[e].process()}};customElements.define("qti-response-else",Ze);var Ge=class extends Ze{calculate(){return this.firstElementChild.calculate()}getSubRules(){let t=[];for(let e=1;e<this.children.length;e++)t.push(this.children[e]);return t}};customElements.define("qti-response-if",Ge);var mr=class extends Ge{render(){return u`${super.render()}`}};customElements.define("qti-response-else-if",mr);var x=class extends g{constructor(){super(...arguments);this.getVariables=()=>Array.from(this.children).map(e=>{switch(e.tagName.toLowerCase()){case"qti-base-value":return{baseType:e.getAttribute("base-type"),value:e.textContent,cardinality:"single"};case"qti-variable":{let r=e.getAttribute("identifier")||"";return this.assessmentItem.getVariable(r)}case"qti-multiple":{let s=e.getResult();return s.length>0?{identifier:"",baseType:s[0].baseType,value:s.map(o=>o.value),cardinality:"multiple",type:"response"}:null}case"qti-correct":{let r=e.getAttribute("identifier")||"",s=this.assessmentItem.getResponse(r);return{baseType:s.baseType,value:s.correctResponse,cardinality:s.cardinality}}default:{try{return{baseType:"integer",value:e.getResult().toString(),cardinality:"single"}}catch(r){console.warn("default not sufficient")}return null}}}).filter(e=>e!==null)}render(){return u`<pre>${JSON.stringify(this.result,null,2)}</pre>
189
189
  <slot></slot>`}calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};x.styles=b`
190
190
  slot {
191
191
  display: none;
192
192
  }
193
- `,a([E()],x.prototype,"result",2);var V=class extends x{calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};var Ht=class extends pi(V){calculate(){return this.calculateChildren(Array.from(this.children))}};function pi(i){return class extends i{calculateChildren(e){return e.map(s=>{let n=s;if(!n.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let o=n.calculate();if(typeof o=="string")if(o==="true")o=!0;else if(o==="false")o=!1;else return console.error("unexpected value in qti-and, expected boolean"),null;return o}).every(s=>typeof s=="boolean"&&s)}}}customElements.define("qti-and",Ht);var Nt=class extends x{constructor(){super(...arguments);this.baseType="string"}getResult(){return this.textContent}};a([p({type:String,attribute:"base-type"})],Nt.prototype,"baseType",2);customElements.define("qti-base-value",Nt);var fr=class extends V{getResult(){let t=this.getVariables();if(this.children.length===2){let e=t[0],r=t[1];if(e.baseType==="directedPair"&&r.baseType==="directedPair"&&e.cardinality==="multiple"){let s=e.value,n=r.value;return s.filter(c=>n.includes(c)).length>0}else if(e.baseType==="directedPair"&&r.baseType==="directedPair"&&e.cardinality==="single"){let s=e.value;return r.value.includes(s)}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",fr);var gr=class extends x{get interpretation(){return this.getAttribute("interpretation")||""}getResult(){let t=this.getAttribute("identifier")||"",e=this.closest("qti-assessment-item").getResponse(t);return e.correctResponse,e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",gr);var Pt=class extends x{constructor(){super(...arguments);this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let r=parseInt(this.getAttribute("figures")||"0");return isNaN(r)?(console.error("figures attribute is not a number"),null):r<0?(console.error("figures attribute is negative"),null):r<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):r}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],s=e[1];if(this.roundingMode===null)return null;if(r.cardinality!=="single"||s.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(s.value))return console.error("unexpected cardinality in qti equal"),!1;switch(e[0].baseType){case"integer":case"float":{let n=parseFloat(r.value),o=parseFloat(s.value);if(!isNaN(n)&&!isNaN(o))return this.roundingMode==="significantFigures"?n.toPrecision(this.figures)===o.toPrecision(this.figures):Math.round(n*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${n}, ${o}`);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}};a([p({type:String})],Pt.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",Pt);var D=class{static compareSingleValues(t,e,r){switch(r){case"identifier":case"string":return t===e;case"integer":{let s=parseInt(t,10),n=parseInt(e,10);if(!isNaN(s)&&!isNaN(n))return s===n;console.error(`Cannot convert ${t} and/or ${e} to int.`);break}case"float":{let s=parseFloat(t),n=parseFloat(e);if(!isNaN(s)&&!isNaN(n))return s===n;console.error(`couldn't convert ${t} and/or ${e} to float.`);break}case"pair":case"directedPair":{let s=t.split(" ").sort(),n=e.split(" ").sort();if(s.length===2&&n.length===2)return r==="pair"&&(s.sort(),n.sort()),s.join(" ")===n.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${t} 2: ${e}`);break}}return!1}};var Vt=class extends x{constructor(){super(...arguments);this.toleranceMode="exact"}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],s=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):r.cardinality!=="single"||s.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(s.value)?(console.error("unexpected cardinality in qti equal"),!1):D.compareSingleValues(r.value,s.value,r.baseType)}return console.error("unexpected number of children in qti-equal"),null}};a([p({type:String})],Vt.prototype,"toleranceMode",2);customElements.define("qti-equal",Vt);var br=class extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value>+r.value;console.error("unexpected baseType or cardinality in qti gt")}return console.error("unexpected number of children in qt"),null}};customElements.define("qti-gt",br);var vr=class extends V{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value>=+r.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",vr);var yr=class extends x{getResult(){if(this.children.length===1){let t=this.getVariables();if(!t)return!0;let e=t[0].value;return e==null||e==null||e===""}return console.error("unexpected number of children in qti Null"),null}};customElements.define("qti-is-null",yr);var xr=class extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value<+r.value;console.error("unexpected baseType or cardinality in qti lt")}return console.error("unexpected number of children in lt"),null}};customElements.define("qti-lt",xr);var Er=class extends V{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value<=+r.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",Er);var Dt=class extends x{getResult(){let t=this.assessmentItem.getResponse(this.identifier);if(!t)return console.warn(`Response ${this.identifier} can not be found`),null;let e=t.mapping,r=Array.isArray(t.value)?t.value:[t.value],s=0;for(let n of r){let o=e.mapEntries.find(l=>D.compareSingleValues(l.mapKey,n,t.baseType));o==null||o.mappedValue==null?s+=e.defaultValue:s+=o.mappedValue}return e.lowerBound!=null&&(s=Math.max(e.lowerBound,s)),e.upperBound!=null&&(s=Math.min(e.upperBound,s)),s}};a([p({type:String})],Dt.prototype,"identifier",2);customElements.define("qti-map-response",Dt);var Te=class extends g{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")}))}};a([p({attribute:"default-value",type:Number})],Te.prototype,"defaultValue",2),a([p({attribute:"lower-bound",type:Number})],Te.prototype,"lowerBound",2),a([p({attribute:"upper-bound",type:Number})],Te.prototype,"upperBound",2);customElements.define("qti-mapping",Te);var _r=class i extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return i.match(e,r)}return console.error("unexpected number of children in match"),null}static match(t,e){var r;switch(e.cardinality){case"single":return t.value===null?!1:Array.isArray(t.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):D.compareSingleValues((r=t.value)==null?void 0:r.toString(),e.value.toString(),e.baseType);case"ordered":{if(!Array.isArray(t.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(t.value.length!==e.value.length)return!1;for(let s=0;s<t.value.length;s++)if(!D.compareSingleValues(e.value[s],t.value[s],e.baseType))return!1;return!0}case"multiple":{if(!Array.isArray(t.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(t.value.length!==e.value.length)return!1;let s=0;for(let n of e.value){let o=null,l=[...t.value];for(let c of l)if(D.compareSingleValues(n,c,e.baseType)){o=c;break}if(o!==null)l.splice(l.indexOf(o),1);else return!1;s++}return!0}default:return console.error("unexpected cardinality in qti match"),!1}}};customElements.define("qti-match",_r);var Cr=class extends x{getResult(){let t=this.getVariables();this.children.length!==2&&console.warn("The member operator takes two sub-expressions");let[e,r]=t;if(e.baseType!==r.baseType&&console.warn("Which must both have the same base-type"),r.cardinality==="multiple"||r.cardinality==="ordered"||console.warn("and the second must be a multiple or ordered container"),(e.baseType==="float"||r.baseType==="float")&&console.warn("The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||r.baseType==="duration")&&console.warn("It must not be used on sub-expressions with a base-type of duration"),e.value===null||r.value===null)return null;let s=e.value;return r.value.includes(s)}};customElements.define("qti-member",Cr);var Ar=class extends x{getResult(){let t=this.getVariables();if(t.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of t)if(e.cardinality!=="multiple"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti multiple"),[];return t}};customElements.define("qti-multiple",Ar);var qr=class extends x{render(){return u`${super.render()}`}getResult(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",qr);var wr=class extends V{getResult(){return Array.from(this.children).map(e=>{let r=e;if(!r.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let s=r.calculate();if(typeof s=="string")if(s==="true")s=!0;else if(s==="false")s=!1;else return console.error("unexpected value in qti-or, expected boolean"),null;return s}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",wr);var Sr=class extends x{getResult(){let t=this.getVariables();if(t.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of t)if(e.cardinality!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return t}};customElements.define("qti-ordered",Sr);var Qe=class extends g{render(){var e,r;let t=(r=(e=this.itemContext)==null?void 0:e.variables.find(s=>s.identifier===this.identifier))==null?void 0:r.value;return u`${JSON.stringify(t,null,2)}`}calculate(){let t=this.closest("qti-assessment-item"),e=this.identifier;return t.getVariable(e).value}};a([p({type:String})],Qe.prototype,"identifier",2),a([J({context:U,subscribe:!0}),E()],Qe.prototype,"itemContext",2);customElements.define("qti-printed-variable",Qe);var Tr=class extends x{getResult(){return this.getVariables().reduce((r,s)=>{if(s.baseType=="float"||s.baseType=="integer")try{return r*parseInt(s.value.toString())}catch(n){console.warn("can not convert to number")}else console.warn(`has another baseType ${s.baseType}`);return r},1)}};customElements.define("qti-product",Tr);var Ot=class extends x{constructor(){super(...arguments);this.caseSensitive="true"}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],s=e[1];if(r.cardinality!=="single"||s.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(s.value))return console.error("unexpected cardinality in qti string-match"),!1;let n=this.caseSensitive==="true"?r.value:r.value.toLowerCase(),o=this.caseSensitive==="true"?s.value:s.value.toLowerCase();return D.compareSingleValues(n,o,r.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};a([p({type:String,attribute:"case-sensitive"})],Ot.prototype,"caseSensitive",2);customElements.define("qti-string-match",Ot);var Rr=class extends x{constructor(){super(),this._expression=new $r(Array.from(this.children))}getResult(){return this._expression.calculate()}},$r=class{constructor(t){this.expressions=t}calculate(){return this.expressions.map(e=>{if(!e.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=e.calculate();return Number.isNaN(r)?(console.error("unexpected value in qti-sum, expected number"),null):Number(r)}).reduce((e,r)=>e+r,0)}};customElements.define("qti-sum",Rr);var Mr=class extends x{getResult(){let t=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariable(t).value}};customElements.define("qti-variable",Mr);var ce=class extends q{constructor(){super(...arguments);this._errorMessage=null;this.loadConfig=async(e,r)=>{e=this.removeDoubleSlashes(e);try{let s=await fetch(e);if(s.ok){let o=await s.json();for(let l in o.paths)r&&(o.paths[l]=this.getResolvablePath(o.paths[l],r));return o}}catch(s){}return null};this.getResolvablePath=(e,r)=>e!=null&&e.toLocaleLowerCase().startsWith("http")||!r?e:this.removeDoubleSlashes(`${r}/${e}`);this.mergeConfigs=async(e,r,s)=>{var n;for(let o in r==null?void 0:r.paths)if(!e.paths[o]){let l=!1;try{let c=(n=r.paths[o])!=null&&n.toLocaleLowerCase().endsWith(".js")?r.paths[o]:r.paths[o]+".js";(await fetch(c)).ok?e.paths[o]=r.paths[o].replace(/\.js$/,""):l=!0}catch(c){l=!0}if(l&&s)if(typeof s=="string")try{let c=await this.loadConfig(s);c!=null&&c.paths[o]&&(e.paths[o]=c.paths[o].replace(/\.js$/,""))}catch(c){}else typeof s=="object"&&s!=null&&s.paths[o]&&(e.paths[o]=s.paths[o].replace(/\.js$/,""));else l&&console.error("Failed to resolve module: "+o)}}}convertQtiVariableJSON(e){for(let r in e)if(e.hasOwnProperty(r)){let s=e[r];if(s){for(let n in s)if(s.hasOwnProperty(n)){let o=s[n];if(Array.isArray(o))return o.map(String);if(o!=null)return String(o)}}}return null}startChecking(){this.intervalId=setInterval(()=>{let e=this.pci.getResponse(),r=this.pci.getResponse(),s=JSON.stringify(e);if(s!==this.rawResponse){this.rawResponse=s;let n=this.convertQtiVariableJSON(r);this.response=n,this.saveResponse(n)}},200)}stopChecking(){this.intervalId!==void 0&&clearInterval(this.intervalId)}validate(){return!0}set response(e){}getTAOConfig(e){let r=e.querySelectorAll("properties"),s={},n=l=>{let c={},d=l.getAttribute("key");if(d){let h=Array.from(l.children),f=h.map(v=>v.getAttribute("key"));f.length>0&&!f.find(v=>!Number.isInteger(+v))?c[d]=h.map(v=>o(v)):c[d]=l.textContent}return c},o=l=>{if(l){let c={};for(let d of l.children)c=_(_({},c),n(d));return c}};for(let l of r)return l.getAttribute("key")||(s=_(_({},s),o(l))),s;return console.log("Can not find qti-custom-interaction config"),null}register(e){this.pci=e;let r=this.parentElement.tagName==="QTI-CUSTOM-INTERACTION"?"TAO":"IMS",s=r=="IMS"?this.querySelector("qti-interaction-markup"):this.querySelector("markup");s.classList.add("qti-customInteraction"),r=="TAO"&&this.querySelector("properties")&&(this.querySelector("properties").style.display="none");let n=r=="IMS"?{properties:this.dataset,onready:()=>{console.log("onready")}}:this.getTAOConfig(this);r=="IMS"?e.getInstance(s,n,void 0):e.initialize(this.customInteractionTypeIdentifier,s.firstElementChild,n),r=="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,s.appendChild(c)}),this.startChecking()}connectedCallback(){super.connectedCallback();let e={context:this.customInteractionTypeIdentifier,catchError:!0,paths:{}};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}this.registerModules(e).then(()=>{requirejs.config(e)(["require"],s=>{!s.defined("qtiCustomInteractionContext")&&define("qtiCustomInteractionContext",()=>({register:o=>{this.register(o)},notifyReady:()=>{}}));let n=s.defined(this.module);s([this.module],o=>{n&&this.register(o)},o=>{this._errorMessage=o})},s=>{this._errorMessage=s})})}disconnectedCallback(){super.disconnectedCallback(),this.stopChecking()}async registerModules(e){let r=this.getAttribute("data-base-url");if(r){let n=`${r}/modules/module_resolution.js`,o=`${r}/modules/module_resolution_fallback.js`;if(n){let l=await this.loadConfig(n,r);await this.mergeConfigs(e,l,o)}}let s=this.querySelector("qti-interaction-modules");if(s){let n=s.querySelectorAll("qti-interaction-module");for(let o of n){let l=o.getAttribute("id"),c=o.getAttribute("primary-path"),d=o.getAttribute("fallback-path"),h=c?{paths:S(_({},e.paths),{[l]:this.getResolvablePath(c,r)})}:null,f=d?{paths:S(_({},e.paths),{[l]:this.getResolvablePath(d,r)})}:null;l&&h&&await this.mergeConfigs(e,h,f)}}}removeDoubleSlashes(e){return e.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}render(){return u`<slot></slot>${this._errorMessage&&u`<div style="color:red">
193
+ `,a([E()],x.prototype,"result",2);var V=class extends x{calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};var Ht=class extends pi(V){calculate(){return this.calculateChildren(Array.from(this.children))}};function pi(i){return class extends i{calculateChildren(e){return e.map(s=>{let o=s;if(!o.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let n=o.calculate();if(typeof n=="string")if(n==="true")n=!0;else if(n==="false")n=!1;else return console.error("unexpected value in qti-and, expected boolean"),null;return n}).every(s=>typeof s=="boolean"&&s)}}}customElements.define("qti-and",Ht);var Pt=class extends x{constructor(){super(...arguments);this.baseType="string"}getResult(){return this.textContent}};a([p({type:String,attribute:"base-type"})],Pt.prototype,"baseType",2);customElements.define("qti-base-value",Pt);var fr=class extends V{getResult(){let t=this.getVariables();if(this.children.length===2){let e=t[0],r=t[1];if(e.baseType==="directedPair"&&r.baseType==="directedPair"&&e.cardinality==="multiple"){let s=e.value,o=r.value;return s.filter(c=>o.includes(c)).length>0}else if(e.baseType==="directedPair"&&r.baseType==="directedPair"&&e.cardinality==="single"){let s=e.value;return r.value.includes(s)}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",fr);var gr=class extends x{get interpretation(){return this.getAttribute("interpretation")||""}getResult(){let t=this.getAttribute("identifier")||"",e=this.closest("qti-assessment-item").getResponse(t);return e.correctResponse,e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",gr);var Nt=class extends x{constructor(){super(...arguments);this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let r=parseInt(this.getAttribute("figures")||"0");return isNaN(r)?(console.error("figures attribute is not a number"),null):r<0?(console.error("figures attribute is negative"),null):r<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):r}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],s=e[1];if(this.roundingMode===null)return null;if(r.cardinality!=="single"||s.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(s.value))return console.error("unexpected cardinality in qti equal"),!1;switch(e[0].baseType){case"integer":case"float":{let o=parseFloat(r.value),n=parseFloat(s.value);if(!isNaN(o)&&!isNaN(n))return this.roundingMode==="significantFigures"?o.toPrecision(this.figures)===n.toPrecision(this.figures):Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(n*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${o}, ${n}`);break}default:{console.error("values other than float and int cannot be used in equalRounded operator.");break}}return!1}return console.error("unexpected number of children in qti-equal-rounded"),null}};a([p({type:String})],Nt.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",Nt);var D=class{static compareSingleValues(t,e,r){switch(r){case"identifier":case"string":return t===e;case"integer":{let s=parseInt(t,10),o=parseInt(e,10);if(!isNaN(s)&&!isNaN(o))return s===o;console.error(`Cannot convert ${t} and/or ${e} to int.`);break}case"float":{let s=parseFloat(t),o=parseFloat(e);if(!isNaN(s)&&!isNaN(o))return s===o;console.error(`couldn't convert ${t} and/or ${e} to float.`);break}case"pair":case"directedPair":{let s=t.split(" ").sort(),o=e.split(" ").sort();if(s.length===2&&o.length===2)return r==="pair"&&(s.sort(),o.sort()),s.join(" ")===o.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${t} 2: ${e}`);break}}return!1}};var Vt=class extends x{constructor(){super(...arguments);this.toleranceMode="exact"}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],s=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):r.cardinality!=="single"||s.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(s.value)?(console.error("unexpected cardinality in qti equal"),!1):D.compareSingleValues(r.value,s.value,r.baseType)}return console.error("unexpected number of children in qti-equal"),null}};a([p({type:String})],Vt.prototype,"toleranceMode",2);customElements.define("qti-equal",Vt);var br=class extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value>+r.value;console.error("unexpected baseType or cardinality in qti gt")}return console.error("unexpected number of children in qt"),null}};customElements.define("qti-gt",br);var vr=class extends V{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value>=+r.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",vr);var yr=class extends x{getResult(){if(this.children.length===1){let t=this.getVariables();if(!t)return!0;let e=t[0].value;return e==null||e==null||e===""}return console.error("unexpected number of children in qti Null"),null}};customElements.define("qti-is-null",yr);var xr=class extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value<+r.value;console.error("unexpected baseType or cardinality in qti lt")}return console.error("unexpected number of children in lt"),null}};customElements.define("qti-lt",xr);var Er=class extends V{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value<=+r.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",Er);var Dt=class extends x{getResult(){let t=this.assessmentItem.getResponse(this.identifier);if(!t)return console.warn(`Response ${this.identifier} can not be found`),null;let e=t.mapping,r=Array.isArray(t.value)?t.value:[t.value],s=0;for(let o of r){let n=e.mapEntries.find(l=>D.compareSingleValues(l.mapKey,o,t.baseType));n==null||n.mappedValue==null?s+=e.defaultValue:s+=n.mappedValue}return e.lowerBound!=null&&(s=Math.max(e.lowerBound,s)),e.upperBound!=null&&(s=Math.min(e.upperBound,s)),s}};a([p({type:String})],Dt.prototype,"identifier",2);customElements.define("qti-map-response",Dt);var Re=class extends g{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")}))}};a([p({attribute:"default-value",type:Number})],Re.prototype,"defaultValue",2),a([p({attribute:"lower-bound",type:Number})],Re.prototype,"lowerBound",2),a([p({attribute:"upper-bound",type:Number})],Re.prototype,"upperBound",2);customElements.define("qti-mapping",Re);var _r=class i extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return i.match(e,r)}return console.error("unexpected number of children in match"),null}static match(t,e){var r;switch(e.cardinality){case"single":return t.value===null?!1:Array.isArray(t.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):D.compareSingleValues((r=t.value)==null?void 0:r.toString(),e.value.toString(),e.baseType);case"ordered":{if(!Array.isArray(t.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(t.value.length!==e.value.length)return!1;for(let s=0;s<t.value.length;s++)if(!D.compareSingleValues(e.value[s],t.value[s],e.baseType))return!1;return!0}case"multiple":{if(!Array.isArray(t.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(t.value.length!==e.value.length)return!1;let s=0;for(let o of e.value){let n=null,l=[...t.value];for(let c of l)if(D.compareSingleValues(o,c,e.baseType)){n=c;break}if(n!==null)l.splice(l.indexOf(n),1);else return!1;s++}return!0}default:return console.error("unexpected cardinality in qti match"),!1}}};customElements.define("qti-match",_r);var Cr=class extends x{getResult(){let t=this.getVariables();this.children.length!==2&&console.warn("The member operator takes two sub-expressions");let[e,r]=t;if(e.baseType!==r.baseType&&console.warn("Which must both have the same base-type"),r.cardinality==="multiple"||r.cardinality==="ordered"||console.warn("and the second must be a multiple or ordered container"),(e.baseType==="float"||r.baseType==="float")&&console.warn("The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||r.baseType==="duration")&&console.warn("It must not be used on sub-expressions with a base-type of duration"),e.value===null||r.value===null)return null;let s=e.value;return r.value.includes(s)}};customElements.define("qti-member",Cr);var Ar=class extends x{getResult(){let t=this.getVariables();if(t.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of t)if(e.cardinality!=="multiple"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti multiple"),[];return t}};customElements.define("qti-multiple",Ar);var qr=class extends x{render(){return u`${super.render()}`}getResult(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",qr);var wr=class extends V{getResult(){return Array.from(this.children).map(e=>{let r=e;if(!r.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let s=r.calculate();if(typeof s=="string")if(s==="true")s=!0;else if(s==="false")s=!1;else return console.error("unexpected value in qti-or, expected boolean"),null;return s}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",wr);var Sr=class extends x{getResult(){let t=this.getVariables();if(t.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of t)if(e.cardinality!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return t}};customElements.define("qti-ordered",Sr);var Qe=class extends g{render(){var e,r;let t=(r=(e=this.itemContext)==null?void 0:e.variables.find(s=>s.identifier===this.identifier))==null?void 0:r.value;return u`${JSON.stringify(t,null,2)}`}calculate(){let t=this.closest("qti-assessment-item"),e=this.identifier;return t.getVariable(e).value}};a([p({type:String})],Qe.prototype,"identifier",2),a([J({context:U,subscribe:!0}),E()],Qe.prototype,"itemContext",2);customElements.define("qti-printed-variable",Qe);var Rr=class extends x{getResult(){return this.getVariables().reduce((r,s)=>{if(s.baseType=="float"||s.baseType=="integer")try{return r*parseInt(s.value.toString())}catch(o){console.warn("can not convert to number")}else console.warn(`has another baseType ${s.baseType}`);return r},1)}};customElements.define("qti-product",Rr);var Ot=class extends x{constructor(){super(...arguments);this.caseSensitive="true"}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],s=e[1];if(r.cardinality!=="single"||s.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(s.value))return console.error("unexpected cardinality in qti string-match"),!1;let o=this.caseSensitive==="true"?r.value:r.value.toLowerCase(),n=this.caseSensitive==="true"?s.value:s.value.toLowerCase();return D.compareSingleValues(o,n,r.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};a([p({type:String,attribute:"case-sensitive"})],Ot.prototype,"caseSensitive",2);customElements.define("qti-string-match",Ot);var Tr=class extends x{constructor(){super(),this._expression=new $r(Array.from(this.children))}getResult(){return this._expression.calculate()}},$r=class{constructor(t){this.expressions=t}calculate(){return this.expressions.map(e=>{if(!e.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=e.calculate();return Number.isNaN(r)?(console.error("unexpected value in qti-sum, expected number"),null):Number(r)}).reduce((e,r)=>e+r,0)}};customElements.define("qti-sum",Tr);var kr=class extends x{getResult(){let t=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariable(t).value}};customElements.define("qti-variable",kr);var ce=class extends q{constructor(){super(...arguments);this._errorMessage=null;this.loadConfig=async(e,r)=>{e=this.removeDoubleSlashes(e);try{let s=await fetch(e);if(s.ok){let n=await s.json();for(let l in n.paths)r&&(n.paths[l]=this.getResolvablePath(n.paths[l],r));return n}}catch(s){}return null};this.getResolvablePathString=(e,r)=>(e=e.replace(/\.js$/,""),e!=null&&e.toLocaleLowerCase().startsWith("http")||!r?e:this.removeDoubleSlashes(`${r}/${e}`));this.getResolvablePath=(e,r)=>Array.isArray(e)?e.map(s=>this.getResolvablePathString(s,r)):this.getResolvablePathString(e,r)}convertQtiVariableJSON(e){for(let r in e)if(e.hasOwnProperty(r)){let s=e[r];if(s){for(let o in s)if(s.hasOwnProperty(o)){let n=s[o];if(Array.isArray(n))return n.map(String);if(n!=null)return String(n)}}}return null}startChecking(){this.intervalId=setInterval(()=>{let e=this.pci.getResponse(),r=this.pci.getResponse(),s=JSON.stringify(e);if(s!==this.rawResponse){this.rawResponse=s;let o=this.convertQtiVariableJSON(r);this.response=o,this.saveResponse(o)}},200)}stopChecking(){this.intervalId!==void 0&&clearInterval(this.intervalId)}validate(){return!0}set response(e){}getTAOConfig(e){let r=e.querySelectorAll("properties"),s={},o=l=>{let c={},d=l.getAttribute("key");if(d){let h=Array.from(l.children),f=h.map(v=>v.getAttribute("key"));f.length>0&&!f.find(v=>!Number.isInteger(+v))?c[d]=h.map(v=>n(v)):c[d]=l.textContent}return c},n=l=>{if(l){let c={};for(let d of l.children)c=_(_({},c),o(d));return c}};for(let l of r)return l.getAttribute("key")||(s=_(_({},s),n(l))),s;return console.log("Can not find qti-custom-interaction config"),null}register(e){this.pci=e;let r=this.parentElement.tagName==="QTI-CUSTOM-INTERACTION"?"TAO":"IMS",s=r=="IMS"?this.querySelector("qti-interaction-markup"):this.querySelector("markup");s.classList.add("qti-customInteraction"),r=="TAO"&&this.querySelector("properties")&&(this.querySelector("properties").style.display="none");let o=r=="IMS"?{properties:this.dataset,onready:()=>{console.log("onready")}}:this.getTAOConfig(this);r=="IMS"?e.getInstance(s,o,void 0):e.initialize(this.customInteractionTypeIdentifier,s.firstElementChild,o),r=="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,s.appendChild(c)}),this.startChecking()}connectedCallback(){super.connectedCallback(),define("qtiCustomInteractionContext",()=>({register:s=>{this.register(s)},notifyReady:()=>{}}));let e=this.buildRequireConfig();requirejs.config(e)(["require"],s=>{s([this.module])})}disconnectedCallback(){super.disconnectedCallback(),requirejs.undef(this.customInteractionTypeIdentifier);let e=requirejs.s.contexts;delete e[this.customInteractionTypeIdentifier],this.stopChecking()}buildRequireConfig(){let e={context:this.customInteractionTypeIdentifier,catchError:!0,paths:window.requirePaths||{},shim:window.requireShim||{}};if(!globalThis.require)return this._errorMessage="RequireJS not found. Please load it via CDN: https://cdnjs.com/libraries/require.js",null;let r=this.getAttribute("data-base-url"),s=this.querySelector("qti-interaction-modules");if(s){let o=s.querySelectorAll("qti-interaction-module");for(let n of o){let l=n.getAttribute("id"),c=n.getAttribute("primary-path"),d=n.getAttribute("fallback-path");if(l&&c){let h=d?this.combineRequireResolvePaths(this.getResolvablePath(c,r),this.getResolvablePath(d,r)):this.getResolvablePath(c,r),f=e.paths[l]||[];e.paths[l]=this.combineRequireResolvePaths(f,h)}}}return e}combineRequireResolvePaths(e,r){let s=Array.isArray(e)?e:[e],o=Array.isArray(r)?r:[r];return s.concat(o)}removeDoubleSlashes(e){return e.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}render(){return u`<slot></slot>${this._errorMessage&&u`<div style="color:red">
194
194
  <h1>Error</h1>
195
195
  ${this._errorMessage}
196
- </div>`}`}};a([p({type:String,attribute:"response-identifier"})],ce.prototype,"responseIdentifier",2),a([p({type:String,attribute:"module"})],ce.prototype,"module",2),a([p({type:String,attribute:"custom-interaction-type-identifier"})],ce.prototype,"customInteractionTypeIdentifier",2),a([E()],ce.prototype,"_errorMessage",2),ce=a([m("qti-portable-custom-interaction")],ce);var Ut=class i{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(t,e){this.data[t]=e},getData:function(t){return this.data[t]},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=(t,e)=>{if(this._dragCopy===null&&this._dragRunning){this._dragSrc.style.opacity=this._COPYOPACITY,this._dragCopy=this._dragSrc.cloneNode(!0);let r=window.getComputedStyle(this._dragSrc);if(this._dragCopy.style="",this._dragCopy.setAttribute("dragclone",""),this.copyStylesDragClone)for(let s of r)this._dragCopy.style[s]=r.getPropertyValue(s);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 r=this;requestAnimationFrame(function(){r._touchEndCalled||r._dragCopy===null||(r._dragCopy.style.top=e.clientY-r._copyOffset.y+"px",r._dragCopy.style.left=e.clientX-r._copyOffset.x+"px")});let s=this._findDroppable(t);s!=this._lastTarget&&(this._dispatchEvent(s,"dragenter"),this._dispatchEvent(this._lastTarget,"dragleave"),this._lastTarget=s),this._currentDropContainer=s,this._currentDropContainer&&this._dispatchEvent(s,"dragover")}};return i._instance?i._instance:(i._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(t){t.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(t){this._touchBegin=Date.now();let{x:e,y:r}=this._getPoint(t);if(this._touchDown={x:e,y:r},this._dragSrc=t.currentTarget,this._canDrag=!0,this.dragOnClick){let s={clientX:e,clientY:r};this._dragRunning=!0,this._createDragCopy(t,s)}t.preventDefault()}_touchMove(t){if(this._canDrag&&this._dragSrc){let{x:e,y:r}=this._getPoint(t),s={clientX:e,clientY:r};this._getDelta(s)>=this._DRAGDELTA&&(this._dragRunning=!0),this._createDragCopy(t,s),t.preventDefault()}}_touchEnd(t){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 r=new CustomEvent("dragend",{bubbles:!0,cancelable:!0});r.dataTransfer={dropEffect:"none"},(e=this._dragSrc)==null||e.dispatchEvent(r)}this._reset()}_touchCancel(t){this._reset()}_findDroppable(t){let e=this._getPoint(t);return this.elementFromPoint(e.x,e.y)}elementFromPoint(t,e){let r=document.elementFromPoint(t,e);if(r){for(;r.shadowRoot;){let s=r.shadowRoot.elementFromPoint(t,e);if(s===null||s===r)break;r=s}return r}return null}_getPoint(t,e){return t&&t.touches&&(t=t.touches[0]),{x:e?t.pageX:t.clientX,y:e?t.pageY:t.clientY}}_calculateDragCopyPosition(t){let e=this._dragSrc.getBoundingClientRect();this._copyOffset.x=t.clientX-e.left,this._copyOffset.y=t.clientY-e.top}_getDelta(t){let e=Math.abs(t.clientX-this._touchDown.x),r=Math.abs(t.clientY-this._touchDown.y);return e+r}_dispatchEvent(t,e,r=!0){if(!t)return!1;let s=new CustomEvent(e,{bubbles:r,cancelable:!0});return s.dataTransfer=this._dataTransfer,t.dispatchEvent(s),s.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(t,e){this.data[t]=e},getData:function(t){return this.data[t]},effectAllowed:"move"},this._copyOffset={x:0,y:0},this._lastTarget=null,this._currentDropContainer=null,this._handleClick=!0}};var As=(i,t,e)=>{class r extends i{constructor(){super(...arguments);this.disabled=!1}firstUpdated(o){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(o);let l=Array.from(t?this.shadowRoot.querySelectorAll(e):this.querySelectorAll(e));this.dragoverHandler=this.dragoverHandler.bind(this),this.dragleaveHandler=this.dragleaveHandler.bind(this),this.dragenterHandler=this.dragenterHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),l.forEach(c=>{c.setAttribute("dropzone","move"),c.addEventListener("dragleave",this.dragleaveHandler),this.attachHandler(c)});for(let c of l)this.observer=new MutationObserver(d=>{d.forEach(h=>{if(h.type==="attributes")switch(h.attributeName){case"disabled":{c.hasAttribute("disabled")?this.removeHandler(c):this.attachHandler(c);break}}})}),this.observer.observe(c,{attributes:!0})}attachHandler(o){o.addEventListener("dragover",this.dragoverHandler),o.addEventListener("dragenter",this.dragenterHandler),o.addEventListener("drop",this.dropHandler)}removeHandler(o){o.removeEventListener("dragover",this.dragoverHandler),o.removeEventListener("dragenter",this.dragenterHandler),o.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var o;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(o=this.observer)==null||o.disconnect())}dragenterHandler(o){o.preventDefault()}dragoverHandler(o){return o.preventDefault(),o.currentTarget.setAttribute("active",""),o.dataTransfer.dropEffect="move",!1}dropHandler(o){o.preventDefault();let l=o.currentTarget,c=this.querySelector(`[identifier=${o.dataTransfer.getData("text")}`),d=c||this.shadowRoot.querySelector(`[identifier=${o.dataTransfer.getData("text")}`);return l?d.parentElement.getAttribute("identifier")!==l.getAttribute("identifier")&&l.appendChild(d):console.error(`cannot find droppable, target: ${o.target?JSON.stringify(o.target):"null"}`),l.removeAttribute("active"),!1}dragleaveHandler(o){return o.preventDefault(),o.currentTarget.removeAttribute("active"),o.dataTransfer.dropEffect="none",!1}}return a([p({type:Boolean,reflect:!0})],r.prototype,"disabled",2),r};var qs=(i,t,e)=>{class r extends i{}return r};var z=(i,t,e,r)=>{class s extends qs(As(i,e,r),r,t){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;this.handleDragStart=l=>{l.dataTransfer.setData("text",l.currentTarget.getAttribute("identifier")),l.currentTarget.setAttribute("dragging",""),this.droppables.forEach(c=>c.setAttribute("enabled",""))};this.handleDragEnd=l=>{l.preventDefault(),this.droppables.forEach(d=>d.removeAttribute("enabled"));let c=l.currentTarget;c.removeAttribute("over"),c.removeAttribute("dragging"),(l.dataTransfer.dropEffect==="none"||l.dataTransfer.dropEffect===void 0)&&this.configuration.dragCanBePlacedBack&&this.placeDraggableBack(c),l.dataTransfer.dropEffect==="move"&&(this.saveResponse(),this.checkMaxMatchAssociations())}}reInitDragAndDrop(l,c){if(this.classList.contains("qti-match-tabular"))return;l.filter(h=>!this.draggables||!this.draggables.get(h)).length>0&&(this.dragDropApi.addDraggables(l),l.forEach(h=>{this.draggables.set(h,{parent:h.parentElement,index:Array.from(h.parentNode.children).indexOf(h)}),h.setAttribute("qti-draggable","true"),h.addEventListener("dragstart",this.handleDragStart),h.addEventListener("dragend",this.handleDragEnd)}))}handleDragOptionsChanged(l,c){this.dragDropApi.copyStylesDragClone=c.copyStylesDragClone,this.dragDropApi.dragOnClick=c.dragOnClick}handleDisabledChange(l,c){this.draggables.forEach((d,h)=>{c?h.setAttribute("disabled",""):h.removeAttribute("disabled"),c?h.removeAttribute("qti-draggable"):h.setAttribute("qti-draggable","true")})}handleReadonlyChange(l,c){this.draggables.forEach((d,h)=>{c?h.setAttribute("readonly",""):h.removeAttribute("readonly"),c?h.removeAttribute("qti-draggable"):h.setAttribute("qti-draggable","true")})}firstUpdated(l){super.firstUpdated(l),this.droppables=Array.from(e?this.shadowRoot.querySelectorAll(r):this.querySelectorAll(r))}connectedCallback(){super.connectedCallback(),this.dragDropApi=new Ut,this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,detail:this}))}placeDraggableBack(l){let c=this.draggables.get(l),d=c.index<=c.parent.children.length?c.index:c.parent.children.length-1,h=c.parent,f=c.parent.children[d];h.insertBefore(l,f),this.saveResponse(),this.checkMaxMatchAssociations()}reset(l=!0){this.draggables.forEach((c,d)=>{let h=c.parent.children,f=c.index<h.length?c.index:h.length;c.parent.insertBefore(d,h[f])}),l&&this.saveResponse()}checkMaxMatchAssociations(){this.droppables.forEach(l=>{let d=+(l.getAttribute("match-max")||1)<=(l.querySelectorAll('[qti-draggable="true"]').length||0);d?l.setAttribute("disabled",""):l.removeAttribute("disabled"),d?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[d,...h]=c.split(" ").reverse();if(d){let f=this.droppables.find(y=>y.getAttribute("identifier")===d);h.forEach(y=>{let v=this.querySelector(`[identifier=${y}]`);f?v?(f.appendChild(v),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${y}`):console.error(`cannot find droppable with identifier: ${d}`)})}}))}validate(){let c=(e?Array.from(this.shadowRoot.querySelectorAll(r)):Array.from(this.querySelectorAll(r))).filter(d=>d.childElementCount>0).length;return this.minAssociations<=0||this.minAssociations<=c}saveResponse(){let l;typeof this.getResponse=="function"?l=this.getResponse():l=this.droppables.map(c=>{let d=c.querySelectorAll('[qti-draggable="true"]'),h=Array.from(d).map(y=>y.getAttribute("identifier")),f=c.getAttribute("identifier");return[...h,f].join(" ")}),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:l}}))}}return a([ys(t)],s.prototype,"reInitDragAndDrop",1),a([p({type:String,attribute:"response-identifier"})],s.prototype,"responseIdentifier",2),a([p({attribute:!1,type:Object})],s.prototype,"configuration",2),a([T("configuration")],s.prototype,"handleDragOptionsChanged",1),a([p({type:Boolean,reflect:!0})],s.prototype,"disabled",2),a([T("disabled",{waitUntilFirstUpdate:!0})],s.prototype,"handleDisabledChange",1),a([p({type:Boolean,reflect:!0})],s.prototype,"readonly",2),a([T("readonly",{waitUntilFirstUpdate:!0})],s.prototype,"handleReadonlyChange",1),a([p({type:Number,reflect:!0,attribute:"min-associations"})],s.prototype,"minAssociations",2),a([p({type:Number,reflect:!0,attribute:"max-associations"})],s.prototype,"maxAssociations",2),s};var Re=class extends z(g,"qti-simple-associable-choice",!0,".dl"){render(){return u` <slot name="prompt"></slot>
196
+ </div>`}`}};a([p({type:String,attribute:"response-identifier"})],ce.prototype,"responseIdentifier",2),a([p({type:String,attribute:"module"})],ce.prototype,"module",2),a([p({type:String,attribute:"custom-interaction-type-identifier"})],ce.prototype,"customInteractionTypeIdentifier",2),a([E()],ce.prototype,"_errorMessage",2),ce=a([m("qti-portable-custom-interaction")],ce);var Ut=class i{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(t,e){this.data[t]=e},getData:function(t){return this.data[t]},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=(t,e)=>{if(this._dragCopy===null&&this._dragRunning){this._dragSrc.style.opacity=this._COPYOPACITY,this._dragCopy=this._dragSrc.cloneNode(!0);let r=window.getComputedStyle(this._dragSrc);if(this._dragCopy.style="",this._dragCopy.setAttribute("dragclone",""),this.copyStylesDragClone)for(let s of r)this._dragCopy.style[s]=r.getPropertyValue(s);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 r=this;requestAnimationFrame(function(){r._touchEndCalled||r._dragCopy===null||(r._dragCopy.style.top=e.clientY-r._copyOffset.y+"px",r._dragCopy.style.left=e.clientX-r._copyOffset.x+"px")});let s=this._findDroppable(t);s!=this._lastTarget&&(this._dispatchEvent(s,"dragenter"),this._dispatchEvent(this._lastTarget,"dragleave"),this._lastTarget=s),this._currentDropContainer=s,this._currentDropContainer&&this._dispatchEvent(s,"dragover")}};return i._instance?i._instance:(i._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(t){t.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(t){this._touchBegin=Date.now();let{x:e,y:r}=this._getPoint(t);if(this._touchDown={x:e,y:r},this._dragSrc=t.currentTarget,this._canDrag=!0,this.dragOnClick){let s={clientX:e,clientY:r};this._dragRunning=!0,this._createDragCopy(t,s)}t.preventDefault()}_touchMove(t){if(this._canDrag&&this._dragSrc){let{x:e,y:r}=this._getPoint(t),s={clientX:e,clientY:r};this._getDelta(s)>=this._DRAGDELTA&&(this._dragRunning=!0),this._createDragCopy(t,s),t.preventDefault()}}_touchEnd(t){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 r=new CustomEvent("dragend",{bubbles:!0,cancelable:!0});r.dataTransfer={dropEffect:"none"},(e=this._dragSrc)==null||e.dispatchEvent(r)}this._reset()}_touchCancel(t){this._reset()}_findDroppable(t){let e=this._getPoint(t);return this.elementFromPoint(e.x,e.y)}elementFromPoint(t,e){let r=document.elementFromPoint(t,e);if(r){for(;r.shadowRoot;){let s=r.shadowRoot.elementFromPoint(t,e);if(s===null||s===r)break;r=s}return r}return null}_getPoint(t,e){return t&&t.touches&&(t=t.touches[0]),{x:e?t.pageX:t.clientX,y:e?t.pageY:t.clientY}}_calculateDragCopyPosition(t){let e=this._dragSrc.getBoundingClientRect();this._copyOffset.x=t.clientX-e.left,this._copyOffset.y=t.clientY-e.top}_getDelta(t){let e=Math.abs(t.clientX-this._touchDown.x),r=Math.abs(t.clientY-this._touchDown.y);return e+r}_dispatchEvent(t,e,r=!0){if(!t)return!1;let s=new CustomEvent(e,{bubbles:r,cancelable:!0});return s.dataTransfer=this._dataTransfer,t.dispatchEvent(s),s.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(t,e){this.data[t]=e},getData:function(t){return this.data[t]},effectAllowed:"move"},this._copyOffset={x:0,y:0},this._lastTarget=null,this._currentDropContainer=null,this._handleClick=!0}};var As=(i,t,e)=>{class r extends i{constructor(){super(...arguments);this.disabled=!1}firstUpdated(n){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(n);let l=Array.from(t?this.shadowRoot.querySelectorAll(e):this.querySelectorAll(e));this.dragoverHandler=this.dragoverHandler.bind(this),this.dragleaveHandler=this.dragleaveHandler.bind(this),this.dragenterHandler=this.dragenterHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),l.forEach(c=>{c.setAttribute("dropzone","move"),c.addEventListener("dragleave",this.dragleaveHandler),this.attachHandler(c)});for(let c of l)this.observer=new MutationObserver(d=>{d.forEach(h=>{if(h.type==="attributes")switch(h.attributeName){case"disabled":{c.hasAttribute("disabled")?this.removeHandler(c):this.attachHandler(c);break}}})}),this.observer.observe(c,{attributes:!0})}attachHandler(n){n.addEventListener("dragover",this.dragoverHandler),n.addEventListener("dragenter",this.dragenterHandler),n.addEventListener("drop",this.dropHandler)}removeHandler(n){n.removeEventListener("dragover",this.dragoverHandler),n.removeEventListener("dragenter",this.dragenterHandler),n.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var n;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(n=this.observer)==null||n.disconnect())}dragenterHandler(n){n.preventDefault()}dragoverHandler(n){return n.preventDefault(),n.currentTarget.setAttribute("active",""),n.dataTransfer.dropEffect="move",!1}dropHandler(n){n.preventDefault();let l=n.currentTarget,c=this.querySelector(`[identifier=${n.dataTransfer.getData("text")}`),d=c||this.shadowRoot.querySelector(`[identifier=${n.dataTransfer.getData("text")}`);return l?d.parentElement.getAttribute("identifier")!==l.getAttribute("identifier")&&l.appendChild(d):console.error(`cannot find droppable, target: ${n.target?JSON.stringify(n.target):"null"}`),l.removeAttribute("active"),!1}dragleaveHandler(n){return n.preventDefault(),n.currentTarget.removeAttribute("active"),n.dataTransfer.dropEffect="none",!1}}return a([p({type:Boolean,reflect:!0})],r.prototype,"disabled",2),r};var qs=(i,t,e)=>{class r extends i{}return r};var z=(i,t,e,r)=>{class s extends qs(As(i,e,r),r,t){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;this.handleDragStart=l=>{l.dataTransfer.setData("text",l.currentTarget.getAttribute("identifier")),l.currentTarget.setAttribute("dragging",""),this.droppables.forEach(c=>c.setAttribute("enabled",""))};this.handleDragEnd=l=>{l.preventDefault(),this.droppables.forEach(d=>d.removeAttribute("enabled"));let c=l.currentTarget;c.removeAttribute("over"),c.removeAttribute("dragging"),(l.dataTransfer.dropEffect==="none"||l.dataTransfer.dropEffect===void 0)&&this.configuration.dragCanBePlacedBack&&this.placeDraggableBack(c),l.dataTransfer.dropEffect==="move"&&(this.saveResponse(),this.checkMaxMatchAssociations())}}reInitDragAndDrop(l,c){if(this.classList.contains("qti-match-tabular"))return;l.filter(h=>!this.draggables||!this.draggables.get(h)).length>0&&(this.dragDropApi.addDraggables(l),l.forEach(h=>{this.draggables.set(h,{parent:h.parentElement,index:Array.from(h.parentNode.children).indexOf(h)}),h.setAttribute("qti-draggable","true"),h.addEventListener("dragstart",this.handleDragStart),h.addEventListener("dragend",this.handleDragEnd)}))}handleDragOptionsChanged(l,c){this.dragDropApi.copyStylesDragClone=c.copyStylesDragClone,this.dragDropApi.dragOnClick=c.dragOnClick}handleDisabledChange(l,c){this.draggables.forEach((d,h)=>{c?h.setAttribute("disabled",""):h.removeAttribute("disabled"),c?h.removeAttribute("qti-draggable"):h.setAttribute("qti-draggable","true")})}handleReadonlyChange(l,c){this.draggables.forEach((d,h)=>{c?h.setAttribute("readonly",""):h.removeAttribute("readonly"),c?h.removeAttribute("qti-draggable"):h.setAttribute("qti-draggable","true")})}firstUpdated(l){super.firstUpdated(l),this.droppables=Array.from(e?this.shadowRoot.querySelectorAll(r):this.querySelectorAll(r))}connectedCallback(){super.connectedCallback(),this.dragDropApi=new Ut,this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,detail:this}))}placeDraggableBack(l){let c=this.draggables.get(l),d=c.index<=c.parent.children.length?c.index:c.parent.children.length-1,h=c.parent,f=c.parent.children[d];h.insertBefore(l,f),this.saveResponse(),this.checkMaxMatchAssociations()}reset(l=!0){this.draggables.forEach((c,d)=>{let h=c.parent.children,f=c.index<h.length?c.index:h.length;c.parent.insertBefore(d,h[f])}),l&&this.saveResponse()}checkMaxMatchAssociations(){this.droppables.forEach(l=>{let d=+(l.getAttribute("match-max")||1)<=(l.querySelectorAll('[qti-draggable="true"]').length||0);d?l.setAttribute("disabled",""):l.removeAttribute("disabled"),d?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[d,...h]=c.split(" ").reverse();if(d){let f=this.droppables.find(y=>y.getAttribute("identifier")===d);h.forEach(y=>{let v=this.querySelector(`[identifier=${y}]`);f?v?(f.appendChild(v),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${y}`):console.error(`cannot find droppable with identifier: ${d}`)})}}))}validate(){let c=(e?Array.from(this.shadowRoot.querySelectorAll(r)):Array.from(this.querySelectorAll(r))).filter(d=>d.childElementCount>0).length;return this.minAssociations<=0||this.minAssociations<=c}saveResponse(){let l;typeof this.getResponse=="function"?l=this.getResponse():l=this.droppables.map(c=>{let d=c.querySelectorAll('[qti-draggable="true"]'),h=Array.from(d).map(y=>y.getAttribute("identifier")),f=c.getAttribute("identifier");return[...h,f].join(" ")}),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:l}}))}}return a([ys(t)],s.prototype,"reInitDragAndDrop",1),a([p({type:String,attribute:"response-identifier"})],s.prototype,"responseIdentifier",2),a([p({attribute:!1,type:Object})],s.prototype,"configuration",2),a([S("configuration")],s.prototype,"handleDragOptionsChanged",1),a([p({type:Boolean,reflect:!0})],s.prototype,"disabled",2),a([S("disabled",{waitUntilFirstUpdate:!0})],s.prototype,"handleDisabledChange",1),a([p({type:Boolean,reflect:!0})],s.prototype,"readonly",2),a([S("readonly",{waitUntilFirstUpdate:!0})],s.prototype,"handleReadonlyChange",1),a([p({type:Number,reflect:!0,attribute:"min-associations"})],s.prototype,"minAssociations",2),a([p({type:Number,reflect:!0,attribute:"max-associations"})],s.prototype,"maxAssociations",2),s};var Te=class extends z(g,"qti-simple-associable-choice",!0,".dl"){render(){return u` <slot name="prompt"></slot>
197
197
  <slot name="qti-simple-associable-choice"></slot>
198
198
  ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((t,e)=>u`<div part="associables-container">
199
199
  <div name="left${e}" part="drop-list" class="dl" identifier="droplist${e}_left"></div>
200
200
  <div name="right${e}" part="drop-list" class="dl" identifier="droplist${e}_right"></div>
201
- </div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};Re.styles=b`
201
+ </div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};Te.styles=b`
202
202
  :host {
203
203
  display: block; /* necessary to calculate scaling position */
204
204
  }
@@ -207,15 +207,15 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
207
207
  flex-wrap: wrap;
208
208
  gap: 0.5rem;
209
209
  }
210
- `,a([E()],Re.prototype,"_childrenMap",2),Re=a([m("qti-associate-interaction")],Re);var W=class extends q{constructor(){super();this._errorMessage=null;this.handlePostMessage=this.handlePostMessage.bind(this)}connectedCallback(){super.connectedCallback();let e=this.data.startsWith("http")?this.data:je(this.baseItemUrl+"/"+this.data);fetch(e).then(r=>r.json()).then(r=>{this.manifest=r,this.setupCES()}).catch(r=>{this._errorMessage=r})}setupCES(){let e=this.shadowRoot.querySelector("#pciContainer"),r=e.contentWindow||e,s=e.contentDocument;window.addEventListener("message",this.handlePostMessage),s.open(),s.write(`
210
+ `,a([E()],Te.prototype,"_childrenMap",2),Te=a([m("qti-associate-interaction")],Te);var W=class extends q{constructor(){super();this._errorMessage=null;this.handlePostMessage=this.handlePostMessage.bind(this)}connectedCallback(){super.connectedCallback();let e=this.data.startsWith("http")?this.data:Xe(this.baseItemUrl+"/"+this.data);fetch(e).then(r=>r.json()).then(r=>{this.manifest=r,this.setupCES()}).catch(r=>{this._errorMessage=r})}setupCES(){let e=this.shadowRoot.querySelector("#pciContainer"),r=e.contentWindow||e,s=e.contentDocument;window.addEventListener("message",this.handlePostMessage),s.open(),s.write(`
211
211
  <html>
212
212
  <head>
213
- <link href='${je(`${this.baseRefUrl}/${this.manifest.style[0]}`)}' rel="stylesheet" />
214
- <script src='${je(`${this.baseRefUrl}/${this.manifest.script[0]}`)}'></script>
213
+ <link href='${Xe(`${this.baseRefUrl}/${this.manifest.style[0]}`)}' rel="stylesheet" />
214
+ <script src='${Xe(`${this.baseRefUrl}/${this.manifest.script[0]}`)}'></script>
215
215
  </head>
216
216
  <body></body>
217
217
  </html>
218
- `),s.close()}getIFrames(){let e=this.shadowRoot.querySelectorAll("iframe"),r=this.querySelectorAll("iframe"),s=[...e,...r];for(let n of s){let o=n.src;if(new URL(o,window.location.href).origin===window.location.origin)try{let c=n.contentDocument||n.contentWindow.document;c&&this.getInnerIFrames(c,s)}catch(c){console.error("Error accessing nested iframe:",c)}}return s.forEach((n,o)=>{s.indexOf(n)!==o&&s.splice(o,1)}),s}getInnerIFrames(e,r=[]){return e.querySelectorAll("iframe").forEach(n=>{r.push(n);let o=n.src;if(new URL(o,window.location.href).origin===window.location.origin)try{let c=n.contentDocument||n.contentWindow.document;this.getInnerIFrames(c,r)}catch(c){console.error("Error accessing nested iframe:",c)}else console.warn("Skipped cross-origin iframe:",o)}),r}postToWindowAndIframes(e,r){window.postMessage({type:e,data:r},"*");let s=this.getIFrames();for(let n of s)n.contentWindow&&n.contentWindow.postMessage({type:e,data:r},"*")}handlePostMessage(e){let{type:r,data:s}=e.data;switch(r){case"setResponse":this.rawResponse=s,this.saveResponse(s);break;case"getResponse":{this.postToWindowAndIframes("responseData",this.rawResponse);break}case"getMedia":{let n=this.manifest.media.map(o=>o.startsWith("http")?o:je(this.baseRefUrl+"/"+o));this.postToWindowAndIframes("mediaData",n);break}case"setStageHeight":console.log("setStageHeight not implemented");break}}validate(){return this.rawResponse!==""}set response(e){this.rawResponse=e}disconnectedCallback(){window.removeEventListener("message",this.handlePostMessage),super.disconnectedCallback()}render(){return u`<iframe
218
+ `),s.close()}getIFrames(){let e=this.shadowRoot.querySelectorAll("iframe"),r=this.querySelectorAll("iframe"),s=[...e,...r];for(let o of s){let n=o.src;if(new URL(n,window.location.href).origin===window.location.origin)try{let c=o.contentDocument||o.contentWindow.document;c&&this.getInnerIFrames(c,s)}catch(c){console.error("Error accessing nested iframe:",c)}}return s.forEach((o,n)=>{s.indexOf(o)!==n&&s.splice(n,1)}),s}getInnerIFrames(e,r=[]){return e.querySelectorAll("iframe").forEach(o=>{r.push(o);let n=o.src;if(new URL(n,window.location.href).origin===window.location.origin)try{let c=o.contentDocument||o.contentWindow.document;this.getInnerIFrames(c,r)}catch(c){console.error("Error accessing nested iframe:",c)}else console.warn("Skipped cross-origin iframe:",n)}),r}postToWindowAndIframes(e,r){window.postMessage({type:e,data:r},"*");let s=this.getIFrames();for(let o of s)o.contentWindow&&o.contentWindow.postMessage({type:e,data:r},"*")}handlePostMessage(e){let{type:r,data:s}=e.data;switch(r){case"setResponse":this.rawResponse=s,this.saveResponse(s);break;case"getResponse":{this.postToWindowAndIframes("responseData",this.rawResponse);break}case"getMedia":{let o=this.manifest.media.map(n=>n.startsWith("http")?n:Xe(this.baseRefUrl+"/"+n));this.postToWindowAndIframes("mediaData",o);break}case"setStageHeight":console.log("setStageHeight not implemented");break}}validate(){return this.rawResponse!==""}set response(e){this.rawResponse=e}disconnectedCallback(){window.removeEventListener("message",this.handlePostMessage),super.disconnectedCallback()}render(){return u`<iframe
219
219
  width=${this.getAttribute("width")}
220
220
  height=${this.getAttribute("height")}
221
221
  frameborder="0"
@@ -227,7 +227,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
227
227
  <h1>Error</h1>
228
228
  ${this._errorMessage}
229
229
  </div>`}`}};a([p({type:String,attribute:"response-identifier"})],W.prototype,"responseIdentifier",2),a([p({type:String,attribute:"data"})],W.prototype,"data",2),a([p({type:String,attribute:"data-base-item"})],W.prototype,"baseItemUrl",2),a([p({type:String,attribute:"data-base-ref"})],W.prototype,"baseRefUrl",2),a([p({type:String,attribute:"id"})],W.prototype,"id",2),a([E()],W.prototype,"_errorMessage",2),W=a([m("qti-custom-interaction")],W);var $e=class extends q{constructor(){super(...arguments);this.countAttempt="true"}validate(){return!0}set response(e){}render(){return u`<button ?disabled=${this.disabled} part="button" @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.dispatchEvent(new CustomEvent("end-attempt",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,countAttempt:this.countAttempt==="true"}}))}};a([p({type:String,attribute:"count-attempt"})],$e.prototype,"countAttempt",2),a([p({type:String})],$e.prototype,"title",2),$e=a([m("qti-end-attempt-interaction")],$e);var et=class extends z(g,"qti-gap-text",!1,"qti-gap"){render(){return u` <slot part="drags" name="qti-gap-text"></slot>
230
- <slot part="drops"></slot>`}set correctResponse(t){let e=[],r=Array.isArray(t)?t:[t];r&&(e=r.map(n=>{let o=n.split(" ");return{text:o[0],gap:o[1]}})),this.querySelectorAll("qti-gap").forEach((n,o)=>{var h,f,y,v;let l=n.getAttribute("identifier"),c=(h=e.find(A=>A.gap===l))==null?void 0:h.text,d=(f=this.querySelector(`qti-gap-text[identifier="${c}"]`))==null?void 0:f.textContent.trim();if(c&&d){if(!((y=n.nextElementSibling)!=null&&y.classList.contains("correct-option"))){let A=document.createElement("span");A.classList.add("correct-option"),A.textContent=d,n.insertAdjacentElement("afterend",A)}}else(v=n.nextElementSibling)!=null&&v.classList.contains("correct-option")&&n.nextElementSibling.remove()})}};et.styles=[b`
230
+ <slot part="drops"></slot>`}set correctResponse(t){let e=[],r=Array.isArray(t)?t:[t];r&&(e=r.map(o=>{let n=o.split(" ");return{text:n[0],gap:n[1]}})),this.querySelectorAll("qti-gap").forEach((o,n)=>{var h,f,y,v;let l=o.getAttribute("identifier"),c=(h=e.find(A=>A.gap===l))==null?void 0:h.text,d=(f=this.querySelector(`qti-gap-text[identifier="${c}"]`))==null?void 0:f.textContent.trim();if(c&&d){if(!((y=o.nextElementSibling)!=null&&y.classList.contains("correct-option"))){let A=document.createElement("span");A.classList.add("correct-option"),A.textContent=d,o.insertAdjacentElement("afterend",A)}}else(v=o.nextElementSibling)!=null&&v.classList.contains("correct-option")&&o.nextElementSibling.remove()})}};et.styles=[b`
231
231
  :host {
232
232
  display: flex;
233
233
  align-items: flex-start;
@@ -253,20 +253,20 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
253
253
  flex: 1;
254
254
  gap: 0.5rem;
255
255
  }
256
- `],et=a([m("qti-gap-match-interaction")],et);var ws=(i,t,e)=>{let r=new Map;for(let s=t;s<=e;s++)r.set(i[s],s);return r},It=ee(class extends j{constructor(i){if(super(i),i.type!==ne.CHILD)throw Error("repeat() can only be used in text expressions")}dt(i,t,e){let r;e===void 0?e=t:t!==void 0&&(r=t);let s=[],n=[],o=0;for(let l of i)s[o]=r?r(l,o):o,n[o]=e(l,o),o++;return{values:n,keys:s}}render(i,t,e){return this.dt(i,t,e).values}update(i,[t,e,r]){var w;let s=gs(i),{values:n,keys:o}=this.dt(t,e,r);if(!Array.isArray(s))return this.ut=o,n;let l=(w=this.ut)!=null?w:this.ut=[],c=[],d,h,f=0,y=s.length-1,v=0,A=n.length-1;for(;f<=y&&v<=A;)if(s[f]===null)f++;else if(s[y]===null)y--;else if(l[f]===o[v])c[v]=oe(s[f],n[v]),f++,v++;else if(l[y]===o[A])c[A]=oe(s[y],n[A]),y--,A--;else if(l[f]===o[A])c[A]=oe(s[f],n[A]),we(i,c[A+1],s[f]),f++,A--;else if(l[y]===o[v])c[v]=oe(s[y],n[v]),we(i,s[f],s[y]),y--,v++;else if(d===void 0&&(d=ws(o,v,A),h=ws(l,f,y)),d.has(l[f]))if(d.has(l[y])){let R=h.get(o[v]),ye=R!==void 0?s[R]:null;if(ye===null){let ut=we(i,s[f]);oe(ut,n[v]),c[v]=ut}else c[v]=oe(ye,n[v]),we(i,s[f],ye),s[R]=null;v++}else Tt(s[y]),y--;else Tt(s[f]),f++;for(;v<=A;){let R=we(i,c[A+1]);oe(R,n[v]),c[v++]=R}for(;f<=y;){let R=s[f++];R!==null&&Tt(R)}return this.ut=o,fs(i,c),L}});function Me(i,t,e,r){switch(i){case"circle":{let[s,n,o]=t,l=s/e.width*100,c=n/e.height*100,d=o/e.width*100;r.style.left=l-d+"%",r.style.top=c-d+"%",r.style.width=r.style.height=4*d+"px",r.style.borderRadius="9999px"}break;case"rect":{let[s,n,o,l]=t,c=s/e.width*100,d=n/e.height*100,h=o/e.width*100,f=l/e.height*100;r.style.left=c+"%",r.style.top=d+"%",r.style.width=h-c+"%",r.style.height=f-d+"%"}break;case"poly":{let s=t.reduce((w,R,ye,ut)=>{if(ye%2===1){let $s=w.pop();w[w.length]={x:$s,y:ut[ye]}}else w.push(R);return w},[]),n=Math.min(...s.map(w=>w.x)),o=Math.max(...s.map(w=>w.x)),l=Math.min(...s.map(w=>w.y)),c=Math.max(...s.map(w=>w.y)),d=n/e.width*100,h=l/e.height*100,f=o/e.width*100,y=c/e.height*100;r.style.left=n/e.width*100+"%",r.style.top=l/e.height*100+"%",r.style.width=f-d+"%",r.style.height=y-h+"%";let A=s.map(w=>({x:(w.x-n)/(o-n)*100,y:(w.y-l)/(c-l)*100})).map(w=>Math.round(w.x)+"% "+Math.round(w.y)+"%").join(",");r.style.clipPath=`polygon(${A})`}break;default:break}}var K=class extends q{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,r,s,n;return u`<slot name="prompt"></slot>
256
+ `],et=a([m("qti-gap-match-interaction")],et);var ws=(i,t,e)=>{let r=new Map;for(let s=t;s<=e;s++)r.set(i[s],s);return r},It=ee(class extends X{constructor(i){if(super(i),i.type!==ne.CHILD)throw Error("repeat() can only be used in text expressions")}dt(i,t,e){let r;e===void 0?e=t:t!==void 0&&(r=t);let s=[],o=[],n=0;for(let l of i)s[n]=r?r(l,n):n,o[n]=e(l,n),n++;return{values:o,keys:s}}render(i,t,e){return this.dt(i,t,e).values}update(i,[t,e,r]){var w;let s=gs(i),{values:o,keys:n}=this.dt(t,e,r);if(!Array.isArray(s))return this.ut=n,o;let l=(w=this.ut)!=null?w:this.ut=[],c=[],d,h,f=0,y=s.length-1,v=0,A=o.length-1;for(;f<=y&&v<=A;)if(s[f]===null)f++;else if(s[y]===null)y--;else if(l[f]===n[v])c[v]=oe(s[f],o[v]),f++,v++;else if(l[y]===n[A])c[A]=oe(s[y],o[A]),y--,A--;else if(l[f]===n[A])c[A]=oe(s[f],o[A]),we(i,c[A+1],s[f]),f++,A--;else if(l[y]===n[v])c[v]=oe(s[y],o[v]),we(i,s[f],s[y]),y--,v++;else if(d===void 0&&(d=ws(n,v,A),h=ws(l,f,y)),d.has(l[f]))if(d.has(l[y])){let T=h.get(n[v]),ye=T!==void 0?s[T]:null;if(ye===null){let ut=we(i,s[f]);oe(ut,o[v]),c[v]=ut}else c[v]=oe(ye,o[v]),we(i,s[f],ye),s[T]=null;v++}else Rt(s[y]),y--;else Rt(s[f]),f++;for(;v<=A;){let T=we(i,c[A+1]);oe(T,o[v]),c[v++]=T}for(;f<=y;){let T=s[f++];T!==null&&Rt(T)}return this.ut=n,fs(i,c),L}});function ke(i,t,e,r){switch(i){case"circle":{let[s,o,n]=t,l=s/e.width*100,c=o/e.height*100,d=n/e.width*100;r.style.left=l-d+"%",r.style.top=c-d+"%",r.style.width=r.style.height=4*d+"px",r.style.borderRadius="9999px"}break;case"rect":{let[s,o,n,l]=t,c=s/e.width*100,d=o/e.height*100,h=n/e.width*100,f=l/e.height*100;r.style.left=c+"%",r.style.top=d+"%",r.style.width=h-c+"%",r.style.height=f-d+"%"}break;case"poly":{let s=t.reduce((w,T,ye,ut)=>{if(ye%2===1){let $s=w.pop();w[w.length]={x:$s,y:ut[ye]}}else w.push(T);return w},[]),o=Math.min(...s.map(w=>w.x)),n=Math.max(...s.map(w=>w.x)),l=Math.min(...s.map(w=>w.y)),c=Math.max(...s.map(w=>w.y)),d=o/e.width*100,h=l/e.height*100,f=n/e.width*100,y=c/e.height*100;r.style.left=o/e.width*100+"%",r.style.top=l/e.height*100+"%",r.style.width=f-d+"%",r.style.height=y-h+"%";let A=s.map(w=>({x:(w.x-o)/(n-o)*100,y:(w.y-l)/(c-l)*100})).map(w=>Math.round(w.x)+"% "+Math.round(w.y)+"%").join(",");r.style.clipPath=`polygon(${A})`}break;default:break}}var K=class extends q{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,r,s,o;return u`<slot name="prompt"></slot>
257
257
  <line-container>
258
258
  <svg
259
259
  width=${B((e=this.grImage[0])==null?void 0:e.width)}
260
260
  height=${B((r=this.grImage[0])==null?void 0:r.height)}
261
- viewbox="0 0 ${(s=this.grImage[0])==null?void 0:s.width} ${(n=this.grImage[0])==null?void 0:n.height}"
261
+ viewbox="0 0 ${(s=this.grImage[0])==null?void 0:s.width} ${(o=this.grImage[0])==null?void 0:o.height}"
262
262
  >
263
- ${It(this._lines,o=>o,(o,l)=>rr`
263
+ ${It(this._lines,n=>n,(n,l)=>rr`
264
264
  <line
265
265
  part="line"
266
- x1=${parseInt(this.querySelector("[identifier="+o.split(" ")[0]+"]").style.left)}
267
- y1=${parseInt(this.querySelector("[identifier="+o.split(" ")[0]+"]").style.top)}
268
- x2=${parseInt(this.querySelector("[identifier="+o.split(" ")[1]+"]").style.left)}
269
- y2=${parseInt(this.querySelector("[identifier="+o.split(" ")[1]+"]").style.top)}
266
+ x1=${parseInt(this.querySelector("[identifier="+n.split(" ")[0]+"]").style.left)}
267
+ y1=${parseInt(this.querySelector("[identifier="+n.split(" ")[0]+"]").style.top)}
268
+ x2=${parseInt(this.querySelector("[identifier="+n.split(" ")[1]+"]").style.left)}
269
+ y2=${parseInt(this.querySelector("[identifier="+n.split(" ")[1]+"]").style.top)}
270
270
  stroke="red"
271
271
  stroke-width="3"
272
272
  @click=${c=>{c.stopPropagation(),this._lines=this._lines.filter((d,h)=>h!==l),this.saveResponse(this._lines)}}
@@ -283,7 +283,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
283
283
  />`}
284
284
  </svg>
285
285
  <slot></slot>
286
- </line-container>`}positionHotspotOnRegister(e){let r=this.querySelector("img"),s=e.target,n=s.getAttribute("coords"),o=s.getAttribute("shape"),l=n.split(",").map(c=>parseInt(c));Me(o,l,r,s)}firstUpdated(e){super.firstUpdated(e),this.hotspots=this.querySelectorAll("qti-associable-hotspot"),document.addEventListener("mousemove",r=>{this.mouseCoord={x:r.clientX-this.grImage[0].getBoundingClientRect().left,y:r.clientY-this.grImage[0].getBoundingClientRect().top}}),this.hotspots.forEach(r=>{r.style.left=r.getAttribute("coords").split(",")[0]+"px",r.style.top=r.getAttribute("coords").split(",")[1]+"px",r.addEventListener("click",s=>{this.startPoint?this.endPoint||(this.endPoint=s.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=s.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)}};K.styles=[b`
286
+ </line-container>`}positionHotspotOnRegister(e){let r=this.querySelector("img"),s=e.target,o=s.getAttribute("coords"),n=s.getAttribute("shape"),l=o.split(",").map(c=>parseInt(c));ke(n,l,r,s)}firstUpdated(e){super.firstUpdated(e),this.hotspots=this.querySelectorAll("qti-associable-hotspot"),document.addEventListener("mousemove",r=>{this.mouseCoord={x:r.clientX-this.grImage[0].getBoundingClientRect().left,y:r.clientY-this.grImage[0].getBoundingClientRect().top}}),this.hotspots.forEach(r=>{r.style.left=r.getAttribute("coords").split(",")[0]+"px",r.style.top=r.getAttribute("coords").split(",")[1]+"px",r.addEventListener("click",s=>{this.startPoint?this.endPoint||(this.endPoint=s.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=s.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)}};K.styles=[b`
287
287
  slot:not([name='prompt']) {
288
288
  // position: relative; /* qti-hotspot-choice relative to the slot */
289
289
  display: block;
@@ -307,7 +307,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
307
307
  left: 0px;
308
308
  }
309
309
  `],a([E()],K.prototype,"_lines",2),a([E()],K.prototype,"startCoord",2),a([E()],K.prototype,"mouseCoord",2),a([Fe("svg")],K.prototype,"svgContainer",2),a([cs({selector:"img"})],K.prototype,"grImage",2),K=a([m("qti-graphic-associate-interaction")],K);var tt=class extends z(g,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return u` <slot></slot>
310
- <slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,s=r.getAttribute("coords"),n=r.getAttribute("shape"),o=s.split(",").map(l=>parseInt(l));switch(n){case"circle":{let[l,c,d]=o;r.style.left=l-d+"px",r.style.top=c-d+"px",r.style.width=r.style.height=2*d+"px"}break;case"rect":{let[l,c,d,h]=o;r.style.left=l+"px",r.style.top=c+"px",r.style.width=d-l+"px",r.style.height=h-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)}};tt.styles=b`
310
+ <slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,s=r.getAttribute("coords"),o=r.getAttribute("shape"),n=s.split(",").map(l=>parseInt(l));switch(o){case"circle":{let[l,c,d]=n;r.style.left=l-d+"px",r.style.top=c-d+"px",r.style.width=r.style.height=2*d+"px"}break;case"rect":{let[l,c,d,h]=n;r.style.left=l+"px",r.style.top=c+"px",r.style.width=d-l+"px",r.style.height=h-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)}};tt.styles=b`
311
311
  :host {
312
312
  display: inline-block;
313
313
  position: relative;
@@ -321,7 +321,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
321
321
  <!-- slot for the prompt -->
322
322
  <slot></slot>
323
323
  <!-- slot for the image and hotspots -->
324
- `}setHotspotOrder(t){let{identifier:e}=t.detail,r=this._choiceElements.find(n=>n.getAttribute("identifier")===e),s=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(n=>n.order>0).length>=s){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(n=>!!n.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(n=>(n.order>n.order&&n.order--,n)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,s=r.getAttribute("coords"),n=r.getAttribute("shape"),o=s.split(",").map(l=>parseInt(l));Me(n,o,e,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)}};rt.styles=[b`
324
+ `}setHotspotOrder(t){let{identifier:e}=t.detail,r=this._choiceElements.find(o=>o.getAttribute("identifier")===e),s=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(o=>o.order>0).length>=s){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(o=>!!o.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(o=>(o.order>o.order&&o.order--,o)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,s=r.getAttribute("coords"),o=r.getAttribute("shape"),n=s.split(",").map(l=>parseInt(l));ke(o,n,e,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)}};rt.styles=[b`
325
325
  slot:not([name='prompt']) {
326
326
  position: relative; /* qti-hotspot-choice relative to the slot */
327
327
  display: block;
@@ -337,7 +337,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
337
337
  <!-- slot for the prompt -->
338
338
  <slot></slot>
339
339
  <!-- slot for the image and hotspots -->
340
- `}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,s=r.getAttribute("coords"),n=r.getAttribute("shape"),o=s.split(",").map(l=>parseInt(l));Me(n,o,e,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};st.styles=[b`
340
+ `}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,s=r.getAttribute("coords"),o=r.getAttribute("shape"),n=s.split(",").map(l=>parseInt(l));ke(o,n,e,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};st.styles=[b`
341
341
  slot:not([name='prompt']) {
342
342
  position: relative; /* qti-hotspot-choice relative to the slot */
343
343
  display: block;
@@ -352,7 +352,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
352
352
  `],st=a([m("qti-hotspot-interaction")],st);var ve=class extends g{constructor(){super(...arguments);this.matchMin=0;this.matchMax=1;this.fixed=!1}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return u`
353
353
  <slot></slot>
354
354
  <slot name="qti-simple-associable-choice"></slot>
355
- `}};a([p({type:Number,attribute:"match-min"})],ve.prototype,"matchMin",2),a([p({type:Number,attribute:"match-max"})],ve.prototype,"matchMax",2),a([p({type:Boolean,attribute:"fixed"})],ve.prototype,"fixed",2),ve=a([m("qti-simple-associable-choice")],ve);var pe=class extends z(g,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){constructor(){super(...arguments);this.lastCheckedRadio=null;this.response=[];this.correctOptions=[];this.responseIdentifier="";this.handleRadioClick=e=>{let r=e.target;this.lastCheckedRadio===r?(r.checked=!1,this.lastCheckedRadio=null,this.handleRadioChange(e)):this.lastCheckedRadio=r};this.handleRadioChange=e=>{let r=e.target,s=r.value,n=r.name,o=r.type;r.checked?(this.response?this.response.indexOf(s)===-1&&(o==="radio"&&(this.response=this.response.filter(l=>l.indexOf(n)===-1)),this.response=[...this.response,s]):this.response=[s],this.lastCheckedRadio=r):(this.response=this.response.filter(l=>l!==s),this.lastCheckedRadio=null),this.requestUpdate(),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:Array.isArray(this.response)?[...this.response]:this.response}}))}}connectedCallback(){super.connectedCallback(),this.rows=Array.from(this.querySelectorAll("qti-simple-match-set:first-of-type qti-simple-associable-choice")),this.cols=Array.from(this.querySelectorAll("qti-simple-match-set:last-of-type qti-simple-associable-choice")),this.response=[]}set correctResponse(e){if(e===""){this.correctOptions=[];return}else Array.isArray(e)&&(this.correctOptions=e)}render(){return this.classList.contains("qti-match-tabular")?u`
355
+ `}};a([p({type:Number,attribute:"match-min"})],ve.prototype,"matchMin",2),a([p({type:Number,attribute:"match-max"})],ve.prototype,"matchMax",2),a([p({type:Boolean,attribute:"fixed"})],ve.prototype,"fixed",2),ve=a([m("qti-simple-associable-choice")],ve);var pe=class extends z(g,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){constructor(){super(...arguments);this.lastCheckedRadio=null;this.response=[];this.correctOptions=[];this.responseIdentifier="";this.handleRadioClick=e=>{let r=e.target;this.lastCheckedRadio===r?(r.checked=!1,this.lastCheckedRadio=null,this.handleRadioChange(e)):this.lastCheckedRadio=r};this.handleRadioChange=e=>{let r=e.target,s=r.value,o=r.name,n=r.type;r.checked?(this.response?this.response.indexOf(s)===-1&&(n==="radio"&&(this.response=this.response.filter(l=>l.indexOf(o)===-1)),this.response=[...this.response,s]):this.response=[s],this.lastCheckedRadio=r):(this.response=this.response.filter(l=>l!==s),this.lastCheckedRadio=null),this.requestUpdate(),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:Array.isArray(this.response)?[...this.response]:this.response}}))}}connectedCallback(){super.connectedCallback(),this.rows=Array.from(this.querySelectorAll("qti-simple-match-set:first-of-type qti-simple-associable-choice")),this.cols=Array.from(this.querySelectorAll("qti-simple-match-set:last-of-type qti-simple-associable-choice")),this.response=[]}set correctResponse(e){if(e===""){this.correctOptions=[];return}else Array.isArray(e)&&(this.correctOptions=e)}render(){return this.classList.contains("qti-match-tabular")?u`
356
356
  <slot name="prompt"></slot>
357
357
  <table>
358
358
  <tr>
@@ -362,11 +362,11 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
362
362
 
363
363
  ${this.rows.map((e,r)=>u`<tr>
364
364
  <td part="c-header">${ae(e.innerHTML)}</td>
365
- ${this.cols.map((s,n)=>{let o=e.getAttribute("identifier"),l=s.getAttribute("identifier"),c=`${o} ${l}`,d=this.response.filter(v=>v.split(" ")[0]===o).length||0,h=this.response.includes(c),f=`rb ${h?"rb-checked":""} ${this.correctOptions.includes(c)?"rb-correct":""}`,y=this.correctOptions.length>0?!0:e.matchMax===1?!1:d>=e.matchMax&&!h;return u`<td>
365
+ ${this.cols.map((s,o)=>{let n=e.getAttribute("identifier"),l=s.getAttribute("identifier"),c=`${n} ${l}`,d=this.response.filter(v=>v.split(" ")[0]===n).length||0,h=this.response.includes(c),f=`rb ${h?"rb-checked":""} ${this.correctOptions.includes(c)?"rb-correct":""}`,y=this.correctOptions.length>0?!0:e.matchMax===1?!1:d>=e.matchMax&&!h;return u`<td>
366
366
  <input
367
367
  type=${e.matchMax===1?"radio":"checkbox"}
368
368
  part=${f}
369
- name=${o}
369
+ name=${n}
370
370
  value=${c}
371
371
  .disabled=${y}
372
372
  @change=${v=>this.handleRadioChange(v)}
@@ -394,14 +394,14 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
394
394
  :host(.qti-choices-right) {
395
395
  flex-direction: row-reverse;
396
396
  }
397
- `],a([E()],pe.prototype,"response",2),a([E()],pe.prototype,"correctOptions",2),a([p({type:String,attribute:"response-identifier"})],pe.prototype,"responseIdentifier",2),pe=a([m("qti-match-interaction")],pe);var it=class extends q{constructor(){super();this.value=0}reset(){}validate(){return!0}set response(e){}static get properties(){return S(_({},q.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return u` <slot name="prompt"></slot>
398
- <slot></slot>`}connectedCallback(){super.connectedCallback();let e=this.querySelector("audio")||this.querySelector("video")||this.querySelector("object");e&&e.addEventListener("ended",()=>{this.value++,this.saveResponse(this.value.toString())})}};it.styles=[b``],it=a([m("qti-media-interaction")],it);var Ss=(i,t)=>{class e extends i{constructor(){super(...arguments);this._shuffle=!0}firstUpdated(n){super.firstUpdated(n),this._shuffle&&this._shuffleChoices()}get shuffle(){return this._shuffle}set shuffle(n){let o=this._shuffle;this._shuffle=n,n?this._shuffleChoices():this._resetShuffleChoices(),this.requestUpdate("shuffle",o)}_shuffleChoices(){let n=Array.from(this.querySelectorAll(t)),o=[],l=[];n.forEach((d,h)=>{d.hasAttribute("fixed")?o.push({element:d,index:h}):l.push(d)});for(let d=l.length-1;d>0;d--){let h=Math.floor(Math.random()*(d+1));[l[d],l[h]]=[l[h],l[d]]}let c=1;n.forEach((d,h)=>{if(d.hasAttribute("fixed"))d.style.order=String(c++);else{let f=l.shift();f.style.order=c++}})}_resetShuffleChoices(){Array.from(this.querySelectorAll("qti-simple-choice")).forEach((o,l)=>{o.style.order="initial"})}}return e};var te=class extends Ss(z(g,"qti-simple-choice",!0,"drop-list"),"qti-simple-choice"){constructor(){super(...arguments);this.nrChoices=0;this.correctResponses=[];this.showCorrectResponses=!1}render(){let e=Array.from(this.querySelectorAll("qti-simple-choice"));return this.nrChoices<e.length&&(this.nrChoices=e.length),u` <slot name="prompt"> </slot>
397
+ `],a([E()],pe.prototype,"response",2),a([E()],pe.prototype,"correctOptions",2),a([p({type:String,attribute:"response-identifier"})],pe.prototype,"responseIdentifier",2),pe=a([m("qti-match-interaction")],pe);var it=class extends q{constructor(){super();this.value=0}reset(){}validate(){return!0}set response(e){}static get properties(){return R(_({},q.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return u` <slot name="prompt"></slot>
398
+ <slot></slot>`}connectedCallback(){super.connectedCallback();let e=this.querySelector("audio")||this.querySelector("video")||this.querySelector("object");e&&e.addEventListener("ended",()=>{this.value++,this.saveResponse(this.value.toString())})}};it.styles=[b``],it=a([m("qti-media-interaction")],it);var Ss=(i,t)=>{class e extends i{constructor(){super(...arguments);this._shuffle=!0}firstUpdated(o){super.firstUpdated(o),this._shuffle&&this._shuffleChoices()}get shuffle(){return this._shuffle}set shuffle(o){let n=this._shuffle;this._shuffle=o,o?this._shuffleChoices():this._resetShuffleChoices(),this.requestUpdate("shuffle",n)}_shuffleChoices(){let o=Array.from(this.querySelectorAll(t)),n=[],l=[];o.forEach((d,h)=>{d.hasAttribute("fixed")?n.push({element:d,index:h}):l.push(d)});for(let d=l.length-1;d>0;d--){let h=Math.floor(Math.random()*(d+1));[l[d],l[h]]=[l[h],l[d]]}let c=1;o.forEach((d,h)=>{if(d.hasAttribute("fixed"))d.style.order=String(c++);else{let f=l.shift();f.style.order=c++}})}_resetShuffleChoices(){Array.from(this.querySelectorAll("qti-simple-choice")).forEach((n,l)=>{n.style.order="initial"})}}return e};var te=class extends Ss(z(g,"qti-simple-choice",!0,"drop-list"),"qti-simple-choice"){constructor(){super(...arguments);this.nrChoices=0;this.correctResponses=[];this.showCorrectResponses=!1}render(){let e=Array.from(this.querySelectorAll("qti-simple-choice"));return this.nrChoices<e.length&&(this.nrChoices=e.length),u` <slot name="prompt"> </slot>
399
399
  <div part="container">
400
400
  <slot part="drags"> </slot>
401
401
  <div part="drops">
402
402
  ${Array.from(Array(this.nrChoices)).map((r,s)=>u`<drop-list part="drop-list" identifier="droplist${s}"></drop-list>${this.showCorrectResponses&&this.correctResponses.length>s?ae(`<span part='correct-response'>${this.correctResponses[s]}</span>`):""}`)}
403
403
  </div>
404
- </div>`}set correctResponse(e){if(e===""){this.showCorrectResponses=!1;return}this.correctResponses.length===0&&(Array.isArray(e)?e:[e]).forEach((s,n)=>{let o=this.querySelector(`qti-simple-choice[identifier="${s}"]`);o||(o=this.shadowRoot.querySelector(`qti-simple-choice[identifier="${s}"]`));let l=o==null?void 0:o.textContent.trim();this.correctResponses=[...this.correctResponses,l]}),this.showCorrectResponses=!0}getResponse(){return Array.from(this.shadowRoot.querySelectorAll("drop-list")).map(s=>{let n=s.querySelectorAll('[qti-draggable="true"]');return[...Array.from(n).map(l=>l.getAttribute("identifier"))].join(" ")})}async connectedCallback(){super.connectedCallback(),await this.update,this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};te.styles=[b`
404
+ </div>`}set correctResponse(e){if(e===""){this.showCorrectResponses=!1;return}this.correctResponses.length===0&&(Array.isArray(e)?e:[e]).forEach((s,o)=>{let n=this.querySelector(`qti-simple-choice[identifier="${s}"]`);n||(n=this.shadowRoot.querySelector(`qti-simple-choice[identifier="${s}"]`));let l=n==null?void 0:n.textContent.trim();this.correctResponses=[...this.correctResponses,l]}),this.showCorrectResponses=!0}getResponse(){return Array.from(this.shadowRoot.querySelectorAll("drop-list")).map(s=>{let o=s.querySelectorAll('[qti-draggable="true"]');return[...Array.from(o).map(l=>l.getAttribute("identifier"))].join(" ")})}async connectedCallback(){super.connectedCallback(),await this.update,this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};te.styles=[b`
405
405
  [part='drags'] {
406
406
  display: flex;
407
407
  align-items: flex-start;
@@ -465,18 +465,18 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
465
465
  display: inline-block;
466
466
  position: relative;
467
467
  }
468
- `],ot=a([m("qti-position-object-stage")],ot);var Ts="important",di=" !"+Ts,Rs=ee(class extends j{constructor(i){var t;if(super(i),i.type!==ne.ATTRIBUTE||i.name!=="style"||((t=i.strings)==null?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(i){return Object.keys(i).reduce((t,e)=>{let r=i[e];return r==null?t:t+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(i,[t]){let{style:e}=i.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(t)),this.render(t);for(let r of this.ft)t[r]==null&&(this.ft.delete(r),r.includes("-")?e.removeProperty(r):e[r]=null);for(let r in t){let s=t[r];if(s!=null){this.ft.add(r);let n=typeof s=="string"&&s.endsWith(di);r.includes("-")||n?e.setProperty(r,n?s.slice(0,-11):s,n?Ts:""):e[r]=s}}return L}});var de=class extends q{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return u` <slot name="prompt"></slot>
468
+ `],ot=a([m("qti-position-object-stage")],ot);var Rs="important",di=" !"+Rs,Ts=ee(class extends X{constructor(i){var t;if(super(i),i.type!==ne.ATTRIBUTE||i.name!=="style"||((t=i.strings)==null?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(i){return Object.keys(i).reduce((t,e)=>{let r=i[e];return r==null?t:t+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(i,[t]){let{style:e}=i.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(t)),this.render(t);for(let r of this.ft)t[r]==null&&(this.ft.delete(r),r.includes("-")?e.removeProperty(r):e[r]=null);for(let r in t){let s=t[r];if(s!=null){this.ft.add(r);let o=typeof s=="string"&&s.endsWith(di);r.includes("-")||o?e.setProperty(r,o?s.slice(0,-11):s,o?Rs:""):e[r]=s}}return L}});var de=class extends q{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return u` <slot name="prompt"></slot>
469
469
  <point-container>
470
470
  ${It(this._points,e=>e,(e,r)=>u`
471
471
  <button
472
472
  part="point"
473
- style=${Rs({position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
473
+ style=${Ts({position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
474
474
  aria-label="Remove point at ${e}"
475
- @click=${s=>{s.stopPropagation(),this._points=this._points.filter((n,o)=>o!==r),this.saveResponse(this._points)}}
475
+ @click=${s=>{s.stopPropagation(),this._points=this._points.filter((o,n)=>n!==r),this.saveResponse(this._points)}}
476
476
  ></button>
477
477
  `)}
478
478
  <slot></slot>
479
- </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",r=>{let s=r.offsetX,n=r.offsetY;this._points=[...this._points,s+" "+n],this.saveResponse(this._points)})}disconnectedCallback(){super.disconnectedCallback()}};de.styles=[b`
479
+ </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",r=>{let s=r.offsetX,o=r.offsetY;this._points=[...this._points,s+" "+o],this.saveResponse(this._points)})}disconnectedCallback(){super.disconnectedCallback()}};de.styles=[b`
480
480
  :host {
481
481
  display: block;
482
482
  }
@@ -484,7 +484,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
484
484
  display: block;
485
485
  position: relative;
486
486
  }
487
- `],a([p({type:Number,attribute:"max-choices"})],de.prototype,"maxChoices",2),a([p({type:Number,attribute:"min-choices"})],de.prototype,"minChoices",2),a([E()],de.prototype,"_points",2),de=a([m("qti-select-point-interaction")],de);var M=class extends q{constructor(){super();this.stepLabel=!1;this.reverse=!1;this._handleDisabledChange=(e,r)=>{};this._handleReadonlyChange=(e,r)=>{};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 r=parseInt(e);if(Number.isNaN(r)){console.error("QtiSliderInteraction: response is not a number");return}this.value=r}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()),u`<slot name="prompt"></slot>
487
+ `],a([p({type:Number,attribute:"max-choices"})],de.prototype,"maxChoices",2),a([p({type:Number,attribute:"min-choices"})],de.prototype,"minChoices",2),a([E()],de.prototype,"_points",2),de=a([m("qti-select-point-interaction")],de);var k=class extends q{constructor(){super();this.stepLabel=!1;this.reverse=!1;this._handleDisabledChange=(e,r)=>{};this._handleReadonlyChange=(e,r)=>{};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 r=parseInt(e);if(Number.isNaN(r)){console.error("QtiSliderInteraction: response is not a number");return}this.value=r}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()),u`<slot name="prompt"></slot>
488
488
  <div id="slider" part="slider">
489
489
  ${this.csLive.getPropertyValue("--show-bounds")=="true"?u`<div id="bounds" part="bounds">
490
490
  <div>${this._min}</div>
@@ -496,16 +496,16 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
496
496
  ${this.csLive.getPropertyValue("--show-value")=="true"?u`<div id="value" part="value">${this.value}</div>`:C}
497
497
  </div>
498
498
  </div>
499
- </div>`}connectedCallback(){super.connectedCallback(),this.step=1,this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}_onTouchMove(e){let r=l=>{let{x:c}=this.getPositionFromEvent(l),d=c-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(d),l.stopPropagation()},s=()=>{document.removeEventListener("touchmove",r),document.removeEventListener("touchend",s),this.saveResponse(this.value.toString())};document.addEventListener("touchmove",r),document.addEventListener("touchend",s);let{x:n}=this.getPositionFromEvent(e),o=n-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(o),e.stopPropagation()}_onMouseDown(e){let r=o=>{let l=o.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(l),o.preventDefault(),o.stopPropagation()},s=()=>{document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",s),this.saveResponse(this.value.toString())};document.addEventListener("mousemove",r),document.addEventListener("mouseup",s);let n=e.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(n),e.preventDefault(),e.stopPropagation()}calculateValue(e){let r=this.min+(this.max-this.min)*e/this._rail.getBoundingClientRect().width,s=this.min+Math.round((r-this.min)/this._step)*this._step;this.value=s}getPositionFromEvent(e){let r;if(e.type=="touchstart"||e.type=="touchmove"||e.type=="touchend"||e.type=="touchcancel"){let s=typeof e.originalEvent=="undefined"?e:e.originalEvent,n=s.touches[0]||s.changedTouches[0];r={x:n.pageX,y:n.pageY}}else(e.type=="mousedown"||e.type=="mouseup"||e.type=="mousemove"||e.type=="mouseover"||e.type=="mouseout"||e.type=="mouseenter"||e.type=="mouseleave")&&(r={x:e.clientX,y:e.clientY});return r}};M.styles=[b``],a([Fe("#knob")],M.prototype,"_knob",2),a([Fe("#rail")],M.prototype,"_rail",2),a([p({type:Number})],M.prototype,"value",2),a([p({type:Boolean,attribute:"step-label"})],M.prototype,"stepLabel",2),a([p({type:Boolean})],M.prototype,"reverse",2),a([p({type:Number,attribute:"lower-bound"})],M.prototype,"min",1),a([p({type:Number,attribute:"upper-bound"})],M.prototype,"max",1),a([p({type:Number,attribute:"step"})],M.prototype,"step",1),a([T("disabled",{waitUntilFirstUpdate:!0})],M.prototype,"_handleDisabledChange",2),a([T("readonly",{waitUntilFirstUpdate:!0})],M.prototype,"_handleReadonlyChange",2),M=a([m("qti-slider-interaction")],M);var nt=class extends g{render(){return u`<slot @slotchange=${this.handleSlotChange}></slot>`}handleSlotChange(t){var r,s,n;let e=Array.from((s=(r=this.firstElementChild)==null?void 0:r.childNodes)!=null?s:[]).find(o=>o.nodeType===Node.COMMENT_NODE);try{this.operatorFunction=new Function("context","fn","item",(n=e.textContent)!=null?n:"")}catch(o){console.error("custom-operator contains invalid javascript code",o)}}calculate(){let t={variable:r=>{var s,n,o;return(o=(n=(s=this._context)==null?void 0:s.variables.find(l=>l.identifier===r))==null?void 0:n.value)!=null?o:""},correct:r=>{var s,n,o;return(o=(n=(s=this._context)==null?void 0:s.variables.find(l=>l.identifier===r))==null?void 0:n.correctResponse)!=null?o:""}},e={getVariable:r=>{var s;return(s=this._context)==null?void 0:s.variables.find(n=>n.identifier===r)},updateOutcomeVariable:(r,s)=>{this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:r,value:s}}))},updateResponseVariable:(r,s)=>{this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:r,response:s}}))}};return this.operatorFunction(this._context,t,e)}};a([J({context:U,subscribe:!0}),E()],nt.prototype,"_context",2),nt=a([m("qti-custom-operator")],nt);var at=class extends g{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return u` <slot name="qti-gap-img"></slot> `}};at.styles=b`
499
+ </div>`}connectedCallback(){super.connectedCallback(),this.step=1,this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}_onTouchMove(e){let r=l=>{let{x:c}=this.getPositionFromEvent(l),d=c-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(d),l.stopPropagation()},s=()=>{document.removeEventListener("touchmove",r),document.removeEventListener("touchend",s),this.saveResponse(this.value.toString())};document.addEventListener("touchmove",r),document.addEventListener("touchend",s);let{x:o}=this.getPositionFromEvent(e),n=o-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(n),e.stopPropagation()}_onMouseDown(e){let r=n=>{let l=n.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(l),n.preventDefault(),n.stopPropagation()},s=()=>{document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",s),this.saveResponse(this.value.toString())};document.addEventListener("mousemove",r),document.addEventListener("mouseup",s);let o=e.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(o),e.preventDefault(),e.stopPropagation()}calculateValue(e){let r=this.min+(this.max-this.min)*e/this._rail.getBoundingClientRect().width,s=this.min+Math.round((r-this.min)/this._step)*this._step;this.value=s}getPositionFromEvent(e){let r;if(e.type=="touchstart"||e.type=="touchmove"||e.type=="touchend"||e.type=="touchcancel"){let s=typeof e.originalEvent=="undefined"?e:e.originalEvent,o=s.touches[0]||s.changedTouches[0];r={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")&&(r={x:e.clientX,y:e.clientY});return r}};k.styles=[b``],a([Fe("#knob")],k.prototype,"_knob",2),a([Fe("#rail")],k.prototype,"_rail",2),a([p({type:Number})],k.prototype,"value",2),a([p({type:Boolean,attribute:"step-label"})],k.prototype,"stepLabel",2),a([p({type:Boolean})],k.prototype,"reverse",2),a([p({type:Number,attribute:"lower-bound"})],k.prototype,"min",1),a([p({type:Number,attribute:"upper-bound"})],k.prototype,"max",1),a([p({type:Number,attribute:"step"})],k.prototype,"step",1),a([S("disabled",{waitUntilFirstUpdate:!0})],k.prototype,"_handleDisabledChange",2),a([S("readonly",{waitUntilFirstUpdate:!0})],k.prototype,"_handleReadonlyChange",2),k=a([m("qti-slider-interaction")],k);var nt=class extends g{render(){return u`<slot @slotchange=${this.handleSlotChange}></slot>`}handleSlotChange(t){var r,s,o;let e=Array.from((s=(r=this.firstElementChild)==null?void 0:r.childNodes)!=null?s:[]).find(n=>n.nodeType===Node.COMMENT_NODE);try{this.operatorFunction=new Function("context","fn","item",(o=e.textContent)!=null?o:"")}catch(n){console.error("custom-operator contains invalid javascript code",n)}}calculate(){let t={variable:r=>{var s,o,n;return(n=(o=(s=this._context)==null?void 0:s.variables.find(l=>l.identifier===r))==null?void 0:o.value)!=null?n:""},correct:r=>{var s,o,n;return(n=(o=(s=this._context)==null?void 0:s.variables.find(l=>l.identifier===r))==null?void 0:o.correctResponse)!=null?n:""}},e={getVariable:r=>{var s;return(s=this._context)==null?void 0:s.variables.find(o=>o.identifier===r)},updateOutcomeVariable:(r,s)=>{this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:r,value:s}}))},updateResponseVariable:(r,s)=>{this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:r,response:s}}))}};return this.operatorFunction(this._context,t,e)}};a([J({context:U,subscribe:!0}),E()],nt.prototype,"_context",2),nt=a([m("qti-custom-operator")],nt);var at=class extends g{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return u` <slot name="qti-gap-img"></slot> `}};at.styles=b`
500
500
  :host {
501
501
  position: absolute;
502
502
  }
503
- `,at=a([m("qti-associable-hotspot")],at);var lt=class extends g{constructor(){super(...arguments);this.tabindex=0}render(){return u` <slot name="qti-gap-text"></slot>`}};a([p({type:Number,reflect:!0})],lt.prototype,"tabindex",2),lt=a([m("qti-gap")],lt);var ct=class extends g{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};a([p({type:Number,reflect:!0})],ct.prototype,"tabindex",2),ct=a([m("qti-gap-img")],ct);var pt=class extends g{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return u`<slot></slot>`}};a([p({type:Number,reflect:!0})],pt.prototype,"tabindex",2),pt=a([m("qti-gap-text")],pt);var ke=class extends k{};ke.styles=b`
503
+ `,at=a([m("qti-associable-hotspot")],at);var lt=class extends g{constructor(){super(...arguments);this.tabindex=0}render(){return u` <slot name="qti-gap-text"></slot>`}};a([p({type:Number,reflect:!0})],lt.prototype,"tabindex",2),lt=a([m("qti-gap")],lt);var ct=class extends g{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};a([p({type:Number,reflect:!0})],ct.prototype,"tabindex",2),ct=a([m("qti-gap-img")],ct);var pt=class extends g{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return u`<slot></slot>`}};a([p({type:Number,reflect:!0})],pt.prototype,"tabindex",2),pt=a([m("qti-gap-text")],pt);var Me=class extends M{};Me.styles=b`
504
504
  :host {
505
505
  position: absolute;
506
506
  }
507
- `,a([p({attribute:"aria-ordervalue",type:Number,reflect:!0})],ke.prototype,"order",2),ke=a([m("qti-hotspot-choice")],ke);var Bt=class extends k{render(){return u`<div part="ch"><div part="cha"></div></div>
508
- <slot></slot> `}};Bt=a([m("qti-hottext")],Bt);var jt=class extends g{};jt=a([m("qti-inline-choice")],jt);var dt=class extends k{render(){return u`<div part="ch"><div part="cha"></div></div>
507
+ `,a([p({attribute:"aria-ordervalue",type:Number,reflect:!0})],Me.prototype,"order",2),Me=a([m("qti-hotspot-choice")],Me);var Bt=class extends M{render(){return u`<div part="ch"><div part="cha"></div></div>
508
+ <slot></slot> `}};Bt=a([m("qti-hottext")],Bt);var Xt=class extends g{};Xt=a([m("qti-inline-choice")],Xt);var dt=class extends M{render(){return u`<div part="ch"><div part="cha"></div></div>
509
509
  <slot part="slot"></slot> `}};dt.styles=b`
510
510
  :host {
511
511
  display: flex;
@@ -514,7 +514,7 @@ var Hr=Object.defineProperty,Ms=Object.defineProperties,ks=Object.getOwnProperty
514
514
  width: 100%;
515
515
  display: block;
516
516
  }
517
- `,dt=a([m("qti-simple-choice")],dt);console.log("%cC\xBFTO%cLab%c: qti-components loaded","font-weight:bold; color:green",'font-family: "PT Sans", font-weight:bold; color:green; font-size: smaller;vertical-align: sub',"font-weight:unset");export{q as Interaction,Qe as QtPrintedVariable,Ht as QtiAnd,H as QtiAssessmentItem,Ae as QtiAssessmentStimulusRef,at as QtiAssociableHotspot,Re as QtiAssociateInteraction,Nt as QtiBaseValue,k as QtiChoice,Se as QtiChoiceInteraction,wt as QtiCompanionMaterialsInfo,V as QtiConditionExpression,fr as QtiContains,St as QtiContentBody,gr as QtiCorrect,W as QtiCustomInteraction,nt as QtiCustomOperator,$e as QtiEndAttemptInteraction,Vt as QtiEqual,Pt as QtiEqualRounded,x as QtiExpression,X as QtiExtendedTextInteraction,Xe as QtiFeedbackBlock,Ye as QtiFeedbackInline,lt as QtiGap,ct as QtiGapImg,et as QtiGapMatchInteraction,pt as QtiGapText,K as QtiGraphicAssociateInteraction,tt as QtiGraphicGapMatchInteraction,rt as QtiGraphicOrderInteraction,br as QtiGt,vr as QtiGte,ke as QtiHotspotChoice,st as QtiHotspotInteraction,Bt as QtiHottext,kt as QtiHottextInteraction,jt as QtiInlineChoice,le as QtiInlineChoiceInteraction,yr as QtiIsNull,Lt as QtiLookupOutcomeValue,xr as QtiLt,Er as QtiLte,Dt as QtiMapResponse,Te as QtiMapping,_r as QtiMatch,pe as QtiMatchInteraction,it as QtiMediaInteraction,Cr as QtiMember,ze as QtiModalFeedback,Ar as QtiMultiple,qr as QtiNot,wr as QtiOr,te as QtiOrderInteraction,Sr as QtiOrdered,I as QtiOutcomeDeclaration,Je as QtiOutcomeProcessing,pr as QtiOutcomeProcessingProcessor,ce as QtiPortableCustomInteraction,ot as QtiPositionObjectStage,Tr as QtiProduct,At as QtiPrompt,dr as QtiResponseCondition,Q as QtiResponseDeclaration,Ze as QtiResponseElse,mr as QtiResponseElseIf,Ge as QtiResponseIf,be as QtiResponseProcessing,F as QtiRubricBlock,Y as QtiRule,Ft as QtiSPositionObjectInteraction,de as QtiSelectPointInteraction,ur as QtiSetOutcomeValue,hr as QtiSetOutcomeValueRule,ve as QtiSimpleAssociableChoice,dt as QtiSimpleChoice,M as QtiSliderInteraction,Ot as QtiStringMatch,qt as QtiStylesheet,Rr as QtiSum,$r as QtiSumExpression,P as QtiTextEntryInteraction,Mr as QtiVariable,U as itemContext,ps as itemContextVariables,pi as qtiAndMixin,ds as qtiTransformItem,pn as qtiTransformManifest,dn as qtiTransformTest};
517
+ `,dt=a([m("qti-simple-choice")],dt);console.log("%cC\xBFTO%cLab%c: qti-components loaded","font-weight:bold; color:green",'font-family: "PT Sans", font-weight:bold; color:green; font-size: smaller;vertical-align: sub',"font-weight:unset");export{q as Interaction,Qe as QtPrintedVariable,Ht as QtiAnd,H as QtiAssessmentItem,Ae as QtiAssessmentStimulusRef,at as QtiAssociableHotspot,Te as QtiAssociateInteraction,Pt as QtiBaseValue,M as QtiChoice,Se as QtiChoiceInteraction,wt as QtiCompanionMaterialsInfo,V as QtiConditionExpression,fr as QtiContains,St as QtiContentBody,gr as QtiCorrect,W as QtiCustomInteraction,nt as QtiCustomOperator,$e as QtiEndAttemptInteraction,Vt as QtiEqual,Nt as QtiEqualRounded,x as QtiExpression,j as QtiExtendedTextInteraction,je as QtiFeedbackBlock,Ye as QtiFeedbackInline,lt as QtiGap,ct as QtiGapImg,et as QtiGapMatchInteraction,pt as QtiGapText,K as QtiGraphicAssociateInteraction,tt as QtiGraphicGapMatchInteraction,rt as QtiGraphicOrderInteraction,br as QtiGt,vr as QtiGte,Me as QtiHotspotChoice,st as QtiHotspotInteraction,Bt as QtiHottext,Mt as QtiHottextInteraction,Xt as QtiInlineChoice,le as QtiInlineChoiceInteraction,yr as QtiIsNull,Lt as QtiLookupOutcomeValue,xr as QtiLt,Er as QtiLte,Dt as QtiMapResponse,Re as QtiMapping,_r as QtiMatch,pe as QtiMatchInteraction,it as QtiMediaInteraction,Cr as QtiMember,ze as QtiModalFeedback,Ar as QtiMultiple,qr as QtiNot,wr as QtiOr,te as QtiOrderInteraction,Sr as QtiOrdered,I as QtiOutcomeDeclaration,Je as QtiOutcomeProcessing,pr as QtiOutcomeProcessingProcessor,ce as QtiPortableCustomInteraction,ot as QtiPositionObjectStage,Rr as QtiProduct,At as QtiPrompt,dr as QtiResponseCondition,Q as QtiResponseDeclaration,Ze as QtiResponseElse,mr as QtiResponseElseIf,Ge as QtiResponseIf,be as QtiResponseProcessing,F as QtiRubricBlock,Y as QtiRule,Ft as QtiSPositionObjectInteraction,de as QtiSelectPointInteraction,ur as QtiSetOutcomeValue,hr as QtiSetOutcomeValueRule,ve as QtiSimpleAssociableChoice,dt as QtiSimpleChoice,k as QtiSliderInteraction,Ot as QtiStringMatch,qt as QtiStylesheet,Tr as QtiSum,$r as QtiSumExpression,N as QtiTextEntryInteraction,kr as QtiVariable,U as itemContext,ps as itemContextVariables,pi as qtiAndMixin,ds as qtiTransformItem,pn as qtiTransformManifest,dn as qtiTransformTest};
518
518
  /*! Bundled license information:
519
519
 
520
520
  @lit/context/lib/context-request-event.js: