@citolab/qti-components 9.0.0 → 9.1.0

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/cdn/index.js CHANGED
@@ -1,7 +1,7 @@
1
- var $c=class{get shadowRoot(){return this.__host.__shadowRoot}constructor(t){this.ariaActiveDescendantElement=null,this.ariaAtomic="",this.ariaAutoComplete="",this.ariaBrailleLabel="",this.ariaBrailleRoleDescription="",this.ariaBusy="",this.ariaChecked="",this.ariaColCount="",this.ariaColIndex="",this.ariaColIndexText="",this.ariaColSpan="",this.ariaControlsElements=null,this.ariaCurrent="",this.ariaDescribedByElements=null,this.ariaDescription="",this.ariaDetailsElements=null,this.ariaDisabled="",this.ariaErrorMessageElements=null,this.ariaExpanded="",this.ariaFlowToElements=null,this.ariaHasPopup="",this.ariaHidden="",this.ariaInvalid="",this.ariaKeyShortcuts="",this.ariaLabel="",this.ariaLabelledByElements=null,this.ariaLevel="",this.ariaLive="",this.ariaModal="",this.ariaMultiLine="",this.ariaMultiSelectable="",this.ariaOrientation="",this.ariaOwnsElements=null,this.ariaPlaceholder="",this.ariaPosInSet="",this.ariaPressed="",this.ariaReadOnly="",this.ariaRelevant="",this.ariaRequired="",this.ariaRoleDescription="",this.ariaRowCount="",this.ariaRowIndex="",this.ariaRowIndexText="",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 Dt=function(n,t,e,r,i){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?n!==t||!i:!t.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?i.call(n,e):i?i.value=e:t.set(n,e),e},Y=function(n,t,e,r){if(e==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?n!==t||!r:!t.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?r:e==="a"?r.call(n):r?r.value:t.get(n)},pr,po,uo,ni,Js,si,mo,Ne,ai,he,fo,Lc;var F={__proto__:null};F.enumerable=!0;Object.freeze(F);var Zs=(he=class{constructor(t,e={}){if(pr.set(this,!1),po.set(this,!1),uo.set(this,!1),ni.set(this,!1),Js.set(this,Date.now()),si.set(this,!1),mo.set(this,void 0),Ne.set(this,void 0),ai.set(this,void 0),this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,arguments.length===0)throw new Error("The type argument must be specified");if(typeof e!="object"||!e)throw new Error('The "options" argument must be an object');let{bubbles:r,cancelable:i,composed:o}=e;Dt(this,pr,!!i,"f"),Dt(this,po,!!r,"f"),Dt(this,uo,!!o,"f"),Dt(this,mo,`${t}`,"f"),Dt(this,Ne,null,"f"),Dt(this,ai,!1,"f")}initEvent(t,e,r){throw new Error("Method not implemented.")}stopImmediatePropagation(){this.stopPropagation()}preventDefault(){Dt(this,ni,!0,"f")}get target(){return Y(this,Ne,"f")}get currentTarget(){return Y(this,Ne,"f")}get srcElement(){return Y(this,Ne,"f")}get type(){return Y(this,mo,"f")}get cancelable(){return Y(this,pr,"f")}get defaultPrevented(){return Y(this,pr,"f")&&Y(this,ni,"f")}get timeStamp(){return Y(this,Js,"f")}composedPath(){return Y(this,ai,"f")?[Y(this,Ne,"f")]:[]}get returnValue(){return!Y(this,pr,"f")||!Y(this,ni,"f")}get bubbles(){return Y(this,po,"f")}get composed(){return Y(this,uo,"f")}get eventPhase(){return Y(this,ai,"f")?he.AT_TARGET:he.NONE}get cancelBubble(){return Y(this,si,"f")}set cancelBubble(t){t&&Dt(this,si,!0,"f")}stopPropagation(){Dt(this,si,!0,"f")}get isTrusted(){return!1}},pr=new WeakMap,po=new WeakMap,uo=new WeakMap,ni=new WeakMap,Js=new WeakMap,si=new WeakMap,mo=new WeakMap,Ne=new WeakMap,ai=new WeakMap,he.NONE=0,he.CAPTURING_PHASE=1,he.AT_TARGET=2,he.BUBBLING_PHASE=3,he);Object.defineProperties(Zs.prototype,{initEvent:F,stopImmediatePropagation:F,preventDefault:F,target:F,currentTarget:F,srcElement:F,type:F,cancelable:F,defaultPrevented:F,timeStamp:F,composedPath:F,returnValue:F,bubbles:F,composed:F,eventPhase:F,cancelBubble:F,stopPropagation:F,isTrusted:F});var Vc=(Lc=class extends Zs{constructor(t,e={}){super(t,e),fo.set(this,void 0),Dt(this,fo,e?.detail??null,"f")}initCustomEvent(t,e,r,i){throw new Error("Method not implemented.")}get detail(){return Y(this,fo,"f")}},fo=new WeakMap,Lc);Object.defineProperties(Vc.prototype,{detail:F});var Xt=Zs,ta=Vc;var et;var gm=(et=class{constructor(){this.STYLE_RULE=1,this.CHARSET_RULE=2,this.IMPORT_RULE=3,this.MEDIA_RULE=4,this.FONT_FACE_RULE=5,this.PAGE_RULE=6,this.NAMESPACE_RULE=10,this.KEYFRAMES_RULE=7,this.KEYFRAME_RULE=8,this.SUPPORTS_RULE=12,this.COUNTER_STYLE_RULE=11,this.FONT_FEATURE_VALUES_RULE=14,this.MARGIN_RULE=9,this.__parentStyleSheet=null,this.cssText=""}get parentRule(){return null}get parentStyleSheet(){return this.__parentStyleSheet}get type(){return 0}},et.STYLE_RULE=1,et.CHARSET_RULE=2,et.IMPORT_RULE=3,et.MEDIA_RULE=4,et.FONT_FACE_RULE=5,et.PAGE_RULE=6,et.NAMESPACE_RULE=10,et.KEYFRAMES_RULE=7,et.KEYFRAME_RULE=8,et.SUPPORTS_RULE=12,et.COUNTER_STYLE_RULE=11,et.FONT_FEATURE_VALUES_RULE=14,et.MARGIN_RULE=9,et);globalThis.Event??=Xt;globalThis.CustomEvent??=ta;var ra=Symbol(),zc=n=>typeof n=="boolean"?n:n?.capture??!1,Yt={__proto__:null};Yt.enumerable=!0;Object.freeze(Yt);var go=class{constructor(){this.__eventListeners=new Map,this.__captureEventListeners=new Map}addEventListener(t,e,r){if(e==null)return;let i=zc(r)?this.__captureEventListeners:this.__eventListeners,o=i.get(t);if(o===void 0)o=new Map,i.set(t,o);else if(o.has(e))return;let s=typeof r=="object"&&r?r:{};s.signal?.addEventListener("abort",()=>this.removeEventListener(t,e,r)),o.set(e,s??{})}removeEventListener(t,e,r){if(e==null)return;let i=zc(r)?this.__captureEventListeners:this.__eventListeners,o=i.get(t);o!==void 0&&(o.delete(e),o.size||i.delete(t))}dispatchEvent(t){let e=this.__resolveFullEventPath();!t.composed&&this.__host&&(e=e.slice(0,e.indexOf(this.__host)));let r=!1,i=!1,o=Xt.NONE,s=null,a=null,l=null,c=t.stopPropagation,d=t.stopImmediatePropagation;Object.defineProperties(t,{target:{get(){return s??a},...Yt},srcElement:{get(){return t.target},...Yt},currentTarget:{get(){return l},...Yt},eventPhase:{get(){return o},...Yt},composedPath:{value:()=>e,...Yt},stopPropagation:{value:()=>{r=!0,c.call(t)},...Yt},stopImmediatePropagation:{value:()=>{i=!0,d.call(t)},...Yt}});let h=(u,g,y)=>{typeof u=="function"?u(t):typeof u?.handleEvent=="function"&&u.handleEvent(t),g.once&&y.delete(u)},f=()=>(l=null,o=Xt.NONE,!t.defaultPrevented),m=e.slice().reverse();s=!this.__host||!t.composed?this:null;let w=u=>{for(a=this;a.__host&&u.includes(a.__host);)a=a.__host};for(let u of m){!s&&(!a||a===u.__host)&&w(m.slice(m.indexOf(u))),l=u,o=u===t.target?Xt.AT_TARGET:Xt.CAPTURING_PHASE;let g=u.__captureEventListeners.get(t.type);if(g){for(let[y,v]of g)if(h(y,v,g),i)return f()}if(r)return f()}let x=t.bubbles?e:[this];a=null;for(let u of x){!s&&(!a||u===a.__host)&&w(x.slice(0,x.indexOf(u)+1)),l=u,o=u===t.target?Xt.AT_TARGET:Xt.BUBBLING_PHASE;let g=u.__eventListeners.get(t.type);if(g){for(let[y,v]of g)if(h(y,v,g),i)return f()}if(r)return f()}return f()}__resolveFullEventPath(){return this.__eventPathCache?this.__eventPathCache:this.__eventTargetParent?this.__eventPathCache=[this,...this.__eventTargetParent.__resolveFullEventPath()]:this.__eventPathCache=[this,Bc,Gh]}};var jc=new WeakMap,ci=n=>{let t=jc.get(n);return t===void 0&&jc.set(n,t=new Map),t},li=class extends go{getRootNode(t){return t?.composed?ea:this.__host?.__shadowRoot??ea}};var Fc=class extends li{get adoptedStyleSheets(){return[]}createTreeWalker(){return{}}createTextNode(){return{}}createElement(){return{}}};var Bc=new Fc,ea=Bc;var Uc=class extends li{constructor(t){if(super(),t!==ra)throw new TypeError("Illegal constructor");Object.assign(this,globalThis,{CustomElementRegistry:bo,customElements:oa,document:ea,Document:Fc,Element:Hc,EventTarget:go,HTMLElement:Wc,Node:li,ShadowRoot:Qc,window:this,Window:Uc})}};var Hc=class extends li{constructor(){super(...arguments),this.__shadowRootMode=null,this.__shadowRoot=null,this.__internals=null}get attributes(){return Array.from(ci(this)).map(([t,e])=>({name:t,value:e}))}get shadowRoot(){return this.__shadowRootMode==="closed"?null:this.__shadowRoot}get localName(){return this.constructor.__localName}get tagName(){return this.localName?.toUpperCase()}setAttribute(t,e){ci(this).set(t,String(e))}removeAttribute(t){ci(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 ci(this).has(t)}attachShadow(t){this.__shadowRootMode=t.mode;let e=new Qc(ra,t);return e.__eventTargetParent=this,e.__host=this,this.__shadowRoot=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 $c(this);return this.__internals=t,t}getAttribute(t){return ci(this).get(t)??null}};var Wc=class extends Hc{},ia=Wc;var Qc=class extends li{get host(){return this.__host}constructor(t,e){if(super(),t!==t)throw new TypeError("Illegal constructor");this.mode=e.mode}};globalThis.litServerRoot??=Object.defineProperty(new ia,"localName",{get(){return"lit-server-root"}});function Wh(){let n,t;return{promise:new Promise((r,i)=>{n=r,t=i}),resolve:n,reject:t}}var bo=class{constructor(){this.__definitions=new Map,this.__reverseDefinitions=new Map,this.__pendingWhenDefineds=new Map}define(t,e){if(this.__definitions.has(t))if(process.env.NODE_ENV==="development")console.warn(`'CustomElementRegistry' already has "${t}" defined. This may have been caused by live reload or hot module replacement in which case it can be safely ignored.
2
- Make sure to test your application with a production build as repeat registrations will throw in production.`);else throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(this.__reverseDefinitions.has(e))throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the constructor has already been used with this registry for the tag name ${this.__reverseDefinitions.get(e)}`);e.__localName=t,this.__definitions.set(t,{ctor:e,observedAttributes:e.observedAttributes??[]}),this.__reverseDefinitions.set(e,t),this.__pendingWhenDefineds.get(t)?.resolve(e),this.__pendingWhenDefineds.delete(t)}get(t){return this.__definitions.get(t)?.ctor}getName(t){return this.__reverseDefinitions.get(t)??null}initialize(t){throw new Error("customElements.initialize is not currently supported in SSR. Please file a bug if you need it.")}upgrade(t){throw new Error("customElements.upgrade is not currently supported in SSR. Please file a bug if you need it.")}async whenDefined(t){let e=this.__definitions.get(t);if(e)return e.ctor;let r=this.__pendingWhenDefineds.get(t);return r||(r=Wh(),this.__pendingWhenDefineds.set(t,r)),r.promise}},Qh=bo;var oa=new Qh,Gh=new Uc(ra);var di=globalThis,yo=di.ShadowRoot&&(di.ShadyCSS===void 0||di.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,na=Symbol(),Gc=new WeakMap,hi=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==na)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(yo&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=Gc.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&Gc.set(e,t))}return t}toString(){return this.cssText}},Xc=n=>new hi(typeof n=="string"?n:n+"",void 0,na),q=(n,...t)=>{let e=n.length===1?n[0]:t.reduce((r,i,o)=>r+(s=>{if(s._$cssResult$===!0)return s.cssText;if(typeof s=="number")return s;throw Error("Value passed to 'css' function must be a 'css' function result: "+s+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+n[o+1],n[0]);return new hi(e,n,na)},Yc=(n,t)=>{if(yo)n.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),i=di.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=e.cssText,n.appendChild(r)}},sa=yo||di.CSSStyleSheet===void 0?n=>n:n=>n instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return Xc(e)})(n):n;var{is:Xh,defineProperty:Yh,getOwnPropertyDescriptor:Kh,getOwnPropertyNames:Jh,getOwnPropertySymbols:Zh,getPrototypeOf:tp}=Object,mi=globalThis;mi.customElements??=oa;var Kc=mi.trustedTypes,ep=Kc?Kc.emptyScript:"",rp=mi.reactiveElementPolyfillSupport,pi=(n,t)=>n,ui={toAttribute(n,t){switch(t){case Boolean:n=n?ep:null;break;case Object:case Array:n=n==null?n:JSON.stringify(n)}return n},fromAttribute(n,t){let e=n;switch(t){case Boolean:e=n!==null;break;case Number:e=n===null?null:Number(n);break;case Object:case Array:try{e=JSON.parse(n)}catch{e=null}}return e}},vo=(n,t)=>!Xh(n,t),Jc={attribute:!0,type:String,converter:ui,reflect:!1,useDefault:!1,hasChanged:vo};Symbol.metadata??=Symbol("metadata"),mi.litPropertyMetadata??=new WeakMap;var Kt=class extends(globalThis.HTMLElement??ia){static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=Jc){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),i=this.getPropertyDescriptor(t,r,e);i!==void 0&&Yh(this.prototype,t,i)}}static getPropertyDescriptor(t,e,r){let{get:i,set:o}=Kh(this.prototype,t)??{get(){return this[e]},set(s){this[e]=s}};return{get:i,set(s){let a=i?.call(this);o?.call(this,s),this.requestUpdate(t,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Jc}static _$Ei(){if(this.hasOwnProperty(pi("elementProperties")))return;let t=tp(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(pi("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(pi("properties"))){let e=this.properties,r=[...Jh(e),...Zh(e)];for(let i of r)this.createProperty(i,e[i])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[r,i]of e)this.elementProperties.set(r,i)}this._$Eh=new Map;for(let[e,r]of this.elementProperties){let i=this._$Eu(e,r);i!==void 0&&this._$Eh.set(i,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 i of r)e.unshift(sa(i))}else t!==void 0&&e.push(sa(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(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.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(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Yc(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ET(t,e){let r=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,r);if(i!==void 0&&r.reflect===!0){let o=(r.converter?.toAttribute!==void 0?r.converter:ui).toAttribute(e,r.type);this._$Em=t,o==null?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(t,e){let r=this.constructor,i=r._$Eh.get(t);if(i!==void 0&&this._$Em!==i){let o=r.getPropertyOptions(i),s=typeof o.converter=="function"?{fromAttribute:o.converter}:o.converter?.fromAttribute!==void 0?o.converter:ui;this._$Em=i;let a=s.fromAttribute(e,o.type);this[i]=a??this._$Ej?.get(i)??a,this._$Em=null}}requestUpdate(t,e,r,i=!1,o){if(t!==void 0){let s=this.constructor;if(i===!1&&(o=this[t]),r??=s.getPropertyOptions(t),!((r.hasChanged??vo)(o,e)||r.useDefault&&r.reflect&&o===this._$Ej?.get(t)&&!this.hasAttribute(s._$Eu(t,r))))return;this.C(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:r,reflect:i,wrapped:o},s){r&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,s??e??this[t]),o!==!0||s!==void 0)||(this._$AL.has(t)||(this.hasUpdated||r||(e=void 0),this._$AL.set(t,e)),i===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){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(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[i,o]of this._$Ep)this[i]=o;this._$Ep=void 0}let r=this.constructor.elementProperties;if(r.size>0)for(let[i,o]of r){let{wrapped:s}=o,a=this[i];s!==!0||this._$AL.has(i)||a===void 0||this.C(i,void 0,o,a)}}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(r=>r.hostUpdate?.()),this.update(e)):this._$EM()}catch(r){throw t=!1,this._$EM(),r}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};Kt.elementStyles=[],Kt.shadowRootOptions={mode:"open"},Kt[pi("elementProperties")]=new Map,Kt[pi("finalized")]=new Map,rp?.({ReactiveElement:Kt}),(mi.reactiveElementVersions??=[]).push("2.1.2");var So=globalThis,Zc=n=>n,wo=So.trustedTypes,tl=wo?wo.createPolicy("lit-html",{createHTML:n=>n}):void 0,ca="$lit$",Jt=`lit$${Math.random().toFixed(9).slice(2)}$`,la="?"+Jt,ip=`<${la}>`,Ve=So.document===void 0?{createTreeWalker:()=>({})}:document,gi=()=>Ve.createComment(""),bi=n=>n===null||typeof n!="object"&&typeof n!="function",da=Array.isArray,sl=n=>da(n)||typeof n?.[Symbol.iterator]=="function",aa=`[
3
- \f\r]`,fi=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,el=/-->/g,rl=/>/g,$e=RegExp(`>|${aa}(?:([^\\s"'>=/]+)(${aa}*=${aa}*(?:[^
4
- \f\r"'\`<>=]|("|')|))|$)`,"g"),il=/'/g,ol=/"/g,al=/^(?:script|style|textarea|title)$/i,ha=n=>(t,...e)=>({_$litType$:n,strings:t,values:e}),b=ha(1),vi=ha(2),Xm=ha(3),Z=Symbol.for("lit-noChange"),P=Symbol.for("lit-nothing"),nl=new WeakMap,Le=Ve.createTreeWalker(Ve,129);function cl(n,t){if(!da(n)||!n.hasOwnProperty("raw"))throw Error("invalid template strings array");return tl!==void 0?tl.createHTML(t):t}var ll=(n,t)=>{let e=n.length-1,r=[],i,o=t===2?"<svg>":t===3?"<math>":"",s=fi;for(let a=0;a<e;a++){let l=n[a],c,d,h=-1,f=0;for(;f<l.length&&(s.lastIndex=f,d=s.exec(l),d!==null);)f=s.lastIndex,s===fi?d[1]==="!--"?s=el:d[1]!==void 0?s=rl:d[2]!==void 0?(al.test(d[2])&&(i=RegExp("</"+d[2],"g")),s=$e):d[3]!==void 0&&(s=$e):s===$e?d[0]===">"?(s=i??fi,h=-1):d[1]===void 0?h=-2:(h=s.lastIndex-d[2].length,c=d[1],s=d[3]===void 0?$e:d[3]==='"'?ol:il):s===ol||s===il?s=$e:s===el||s===rl?s=fi:(s=$e,i=void 0);let m=s===$e&&n[a+1].startsWith("/>")?" ":"";o+=s===fi?l+ip:h>=0?(r.push(c),l.slice(0,h)+ca+l.slice(h)+Jt+m):l+Jt+(h===-2?a:m)}return[cl(n,o+(n[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},yi=class n{constructor({strings:t,_$litType$:e},r){let i;this.parts=[];let o=0,s=0,a=t.length-1,l=this.parts,[c,d]=ll(t,e);if(this.el=n.createElement(c,r),Le.currentNode=this.el.content,e===2||e===3){let h=this.el.content.firstChild;h.replaceWith(...h.childNodes)}for(;(i=Le.nextNode())!==null&&l.length<a;){if(i.nodeType===1){if(i.hasAttributes())for(let h of i.getAttributeNames())if(h.endsWith(ca)){let f=d[s++],m=i.getAttribute(h).split(Jt),w=/([.?@])?(.*)/.exec(f);l.push({type:1,index:o,name:w[2],strings:m,ctor:w[1]==="."?qo:w[1]==="?"?Co:w[1]==="@"?ko:je}),i.removeAttribute(h)}else h.startsWith(Jt)&&(l.push({type:6,index:o}),i.removeAttribute(h));if(al.test(i.tagName)){let h=i.textContent.split(Jt),f=h.length-1;if(f>0){i.textContent=wo?wo.emptyScript:"";for(let m=0;m<f;m++)i.append(h[m],gi()),Le.nextNode(),l.push({type:2,index:++o});i.append(h[f],gi())}}}else if(i.nodeType===8)if(i.data===la)l.push({type:2,index:o});else{let h=-1;for(;(h=i.data.indexOf(Jt,h+1))!==-1;)l.push({type:7,index:o}),h+=Jt.length-1}o++}}static createElement(t,e){let r=Ve.createElement("template");return r.innerHTML=t,r}};function ze(n,t,e=n,r){if(t===Z)return t;let i=r!==void 0?e._$Co?.[r]:e._$Cl,o=bi(t)?void 0:t._$litDirective$;return i?.constructor!==o&&(i?._$AO?.(!1),o===void 0?i=void 0:(i=new o(n),i._$AT(n,e,r)),r!==void 0?(e._$Co??=[])[r]=i:e._$Cl=i),i!==void 0&&(t=ze(n,i._$AS(n,t.values),i,r)),t}var xo=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){let{el:{content:e},parts:r}=this._$AD,i=(t?.creationScope??Ve).importNode(e,!0);Le.currentNode=i;let o=Le.nextNode(),s=0,a=0,l=r[0];for(;l!==void 0;){if(s===l.index){let c;l.type===2?c=new ur(o,o.nextSibling,this,t):l.type===1?c=new l.ctor(o,l.name,l.strings,this,t):l.type===6&&(c=new Eo(o,this,t)),this._$AV.push(c),l=r[++a]}s!==l?.index&&(o=Le.nextNode(),s++)}return Le.currentNode=Ve,i}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++}},ur=class n{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,i){this.type=2,this._$AH=P,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=ze(this,t,e),bi(t)?t===P||t==null||t===""?(this._$AH!==P&&this._$AR(),this._$AH=P):t!==this._$AH&&t!==Z&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):sl(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!==P&&bi(this._$AH)?this._$AA.nextSibling.data=t:this.T(Ve.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=yi.createElement(cl(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===i)this._$AH.p(e);else{let o=new xo(i,this),s=o.u(this.options);o.p(e),this.T(s),this._$AH=o}}_$AC(t){let e=nl.get(t.strings);return e===void 0&&nl.set(t.strings,e=new yi(t)),e}k(t){da(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,r,i=0;for(let o of t)i===e.length?e.push(r=new n(this.O(gi()),this.O(gi()),this,this.options)):r=e[i],r._$AI(o),i++;i<e.length&&(this._$AR(r&&r._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){let r=Zc(t).nextSibling;Zc(t).remove(),t=r}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},je=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,i,o){this.type=1,this._$AH=P,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=o,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=P}_$AI(t,e=this,r,i){let o=this.strings,s=!1;if(o===void 0)t=ze(this,t,e,0),s=!bi(t)||t!==this._$AH&&t!==Z,s&&(this._$AH=t);else{let a=t,l,c;for(t=o[0],l=0;l<o.length-1;l++)c=ze(this,a[r+l],e,l),c===Z&&(c=this._$AH[l]),s||=!bi(c)||c!==this._$AH[l],c===P?t=P:t!==P&&(t+=(c??"")+o[l+1]),this._$AH[l]=c}s&&!i&&this.j(t)}j(t){t===P?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},qo=class extends je{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===P?void 0:t}},Co=class extends je{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==P)}},ko=class extends je{constructor(t,e,r,i,o){super(t,e,r,i,o),this.type=5}_$AI(t,e=this){if((t=ze(this,t,e,0)??P)===Z)return;let r=this._$AH,i=t===P&&r!==P||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==P&&(r===P||i);i&&this.element.removeEventListener(this.name,this,r),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},Eo=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){ze(this,t)}},K={M:ca,P:Jt,A:la,C:1,L:ll,R:xo,D:sl,V:ze,I:ur,H:je,N:Co,U:ko,B:qo,F:Eo},op=So.litHtmlPolyfillSupport;op?.(yi,ur),(So.litHtmlVersions??=[]).push("3.3.3");var pa=(n,t,e)=>{let r=e?.renderBefore??t,i=r._$litPart$;if(i===void 0){let o=e?.renderBefore??null;r._$litPart$=i=new ur(t.insertBefore(gi(),o),o,void 0,e??{})}return i._$AI(n),i};var ua=globalThis,C=class extends Kt{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=pa(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return Z}};C._$litElement$=!0,C.finalized=!0,ua.litElementHydrateSupport?.({LitElement:C});var np=ua.litElementPolyfillSupport;np?.({LitElement:C});(ua.litElementVersions??=[]).push("4.2.2");var sp={attribute:!0,type:String,converter:ui,reflect:!1,hasChanged:vo},ap=(n=sp,t,e)=>{let{kind:r,metadata:i}=e,o=globalThis.litPropertyMetadata.get(i);if(o===void 0&&globalThis.litPropertyMetadata.set(i,o=new Map),r==="setter"&&((n=Object.create(n)).wrapped=!0),o.set(e.name,n),r==="accessor"){let{name:s}=e;return{set(a){let l=t.get.call(this);t.set.call(this,a),this.requestUpdate(s,l,n,!0,a)},init(a){return a!==void 0&&this.C(s,void 0,n,a),a}}}if(r==="setter"){let{name:s}=e;return function(a){let l=this[s];t.call(this,a),this.requestUpdate(s,l,n,!0,a)}}throw Error("Unsupported decorator location: "+r)};function p(n){return(t,e)=>typeof e=="object"?ap(n,t,e):((r,i,o)=>{let s=i.hasOwnProperty(o);return i.constructor.createProperty(o,r),s?Object.getOwnPropertyDescriptor(i,o):void 0})(n,t,e)}function _(n){return p({...n,state:!0,attribute:!1})}var pe=(n,t,e)=>(e.configurable=!0,e.enumerable=!0,Reflect.decorate&&typeof t!="object"&&Object.defineProperty(n,t,e),e);function mr(n,t){return(e,r,i)=>{let o=s=>s.renderRoot?.querySelector(n)??null;if(t){let{get:s,set:a}=typeof r=="object"?e:i??(()=>{let l=Symbol();return{get(){return this[l]},set(c){this[l]=c}}})();return pe(e,r,{get(){let l=s.call(this);return l===void 0&&(l=o(this),(l!==null||this.hasUpdated)&&a.call(this,l)),l}})}return pe(e,r,{get(){return o(this)}})}}function dl(n){return(t,e)=>{let{slot:r,selector:i}=n??{},o="slot"+(r?`[name=${r}]`:":not([name])");return pe(t,e,{get(){let s=this.renderRoot?.querySelector(o),a=s?.assignedElements(n)??[];return i===void 0?a:a.filter(l=>l.matches(i))}})}}var fr=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},hl={fromAttribute(n){return n==="true"},toAttribute(n){return n?"true":"false"}},Nt=class extends C{constructor(){super(...arguments),this.weigths=new Map}createRenderRoot(){return this}get assessmentItem(){return this.renderRoot?.querySelector("qti-assessment-item")}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-item-ref-connected",{bubbles:!0,composed:!0,detail:{identifier:this.identifier,href:this.href,category:this.category}}))}render(){return this.myTemplate?this.myTemplate({xmlDoc:this.xmlDoc}):this.xmlDoc}};fr([p({type:String})],Nt.prototype,"category",void 0);fr([p({type:String})],Nt.prototype,"identifier",void 0);fr([p({type:Boolean,converter:hl})],Nt.prototype,"required",void 0);fr([p({type:Boolean,converter:hl})],Nt.prototype,"fixed",void 0);fr([p({type:String})],Nt.prototype,"href",void 0);fr([p({type:Object,attribute:!1})],Nt.prototype,"xmlDoc",void 0);var ue=class extends Event{constructor(t,e,r,i){super("context-request",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=e,this.callback=r,this.subscribe=i??!1}};var gr=class{constructor(t,e,r,i){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(o,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(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,s)),this.unsubscribe=s},this.host=t,e.context!==void 0){let o=e;this.context=o.context,this.callback=o.callback,this.subscribe=o.subscribe??!1}else this.context=e,this.callback=r,this.subscribe=i??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new ue(this.context,this.host,this.t,this.subscribe))}};var Ao=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:i}=this.subscriptions.get(t);t(this.value,i)}clearCallbacks(){this.subscriptions.clear()}};var ma=class extends Event{constructor(t,e){super("context-provider",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=e}},br=class extends Ao{constructor(t,e,r){super(e.context!==void 0?e.initialValue:r),this.onContextRequest=i=>{if(i.context!==this.context)return;let o=i.contextTarget??i.composedPath()[0];o!==this.host&&(i.stopPropagation(),this.addCallback(i.callback,o,i.subscribe))},this.onProviderRequest=i=>{if(i.context!==this.context||(i.contextTarget??i.composedPath()[0])===this.host)return;let o=new Set;for(let[s,{consumerHost:a}]of this.subscriptions)o.has(s)||(o.add(s),a.dispatchEvent(new ue(this.context,a,s,!0)));i.stopPropagation()},this.host=t,e.context!==void 0?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new ma(this.context,this.host))}};function B({context:n}){return(t,e)=>{let r=new WeakMap;if(typeof e=="object")return{get(){return t.get.call(this)},set(i){return r.get(this).setValue(i),t.set.call(this,i)},init(i){return r.set(this,new br(this,{context:n,initialValue:i})),i}};{t.constructor.addInitializer((s=>{r.set(s,new br(s,{context:n}))}));let i=Object.getOwnPropertyDescriptor(t,e),o;if(i===void 0){let s=new WeakMap;o={get(){return s.get(this)},set(a){r.get(this).setValue(a),s.set(this,a)},configurable:!0,enumerable:!0}}else{let s=i.set;o={...i,set(a){r.get(this).setValue(a),s?.call(this,a)}}}return void Object.defineProperty(t,e,o)}}}function T({context:n,subscribe:t}){return(e,r)=>{typeof r=="object"?r.addInitializer((function(){new gr(this,{context:n,callback:i=>{e.set.call(this,i)},subscribe:t})})):e.constructor.addInitializer((i=>{new gr(i,{context:n,callback:o=>{i[r]=o},subscribe:t})}))}}var pl=[];var ga=class extends Set{#t;constructor(t){super(),this.#t=t}add(t){return super.add(t),this.#e(),this}delete(t){let e=super.delete(t);return this.#e(),e}clear(){super.clear(),this.#e()}#e(){this.#t.isConnected?this.#r():queueMicrotask(()=>this.#r())}#r(){this.size===0?this.#t.removeAttribute("data-state"):this.#t.setAttribute("data-state",Array.from(this).join(" "))}},fa="custom-state-support-probe";function cp(n){if(!("states"in ElementInternals.prototype))return"missing";if(typeof customElements>"u")return"modern";try{customElements.get(fa)||customElements.define(fa,class extends HTMLElement{});let t=n.call(document.createElement(fa)).states;return t?(t.add("probe"),t.delete("probe"),"modern"):"missing"}catch{return"legacy"}}var ul=!1;function ml(){if(ul)return"already-installed";if(typeof HTMLElement>"u"||typeof ElementInternals>"u")return"modern";let n=HTMLElement.prototype.attachInternals;if(!n)return"modern";let t=cp(n);return t==="modern"||(ul=!0,HTMLElement.prototype.attachInternals=function(){let r=n.call(this);return Object.defineProperty(r,"states",{configurable:!0,enumerable:!0,value:new ga(this)}),r}),t}ml();for(let{tag:n,ctor:t}of pl)customElements.get(n)||customElements.define(n,t);var me=Symbol("computedItemContext");var z=Symbol("computedContext");var pt=Symbol("configContext");var yr=Symbol("interactionContext");var j=Symbol("item");var fl=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}];var lp=/^[A-Za-z0-9-]+$/,dp=n=>typeof n=="string"&&lp.test(n),Eg=n=>dp(n)?n:void 0,ut=Symbol("qtiContext");var ba={view:"candidate"},Lt=Symbol("testContext");var ya={items:[],testOutcomeVariables:[]},ot=Symbol("testContext");var O=q`
1
+ var $c=class{get shadowRoot(){return this.__host.__shadowRoot}constructor(t){this.ariaActiveDescendantElement=null,this.ariaAtomic="",this.ariaAutoComplete="",this.ariaBrailleLabel="",this.ariaBrailleRoleDescription="",this.ariaBusy="",this.ariaChecked="",this.ariaColCount="",this.ariaColIndex="",this.ariaColIndexText="",this.ariaColSpan="",this.ariaControlsElements=null,this.ariaCurrent="",this.ariaDescribedByElements=null,this.ariaDescription="",this.ariaDetailsElements=null,this.ariaDisabled="",this.ariaErrorMessageElements=null,this.ariaExpanded="",this.ariaFlowToElements=null,this.ariaHasPopup="",this.ariaHidden="",this.ariaInvalid="",this.ariaKeyShortcuts="",this.ariaLabel="",this.ariaLabelledByElements=null,this.ariaLevel="",this.ariaLive="",this.ariaModal="",this.ariaMultiLine="",this.ariaMultiSelectable="",this.ariaOrientation="",this.ariaOwnsElements=null,this.ariaPlaceholder="",this.ariaPosInSet="",this.ariaPressed="",this.ariaReadOnly="",this.ariaRelevant="",this.ariaRequired="",this.ariaRoleDescription="",this.ariaRowCount="",this.ariaRowIndex="",this.ariaRowIndexText="",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 Dt=function(o,t,e,r,n){if(r==="m")throw new TypeError("Private method is not writable");if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?o!==t||!n:!t.has(o))throw new TypeError("Cannot write private member to an object whose class did not declare it");return r==="a"?n.call(o,e):n?n.value=e:t.set(o,e),e},Y=function(o,t,e,r){if(e==="a"&&!r)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?o!==t||!r:!t.has(o))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e==="m"?r:e==="a"?r.call(o):r?r.value:t.get(o)},pr,pi,ui,sn,Js,an,mi,Ne,cn,he,fi,Lc;var F={__proto__:null};F.enumerable=!0;Object.freeze(F);var Zs=(he=class{constructor(t,e={}){if(pr.set(this,!1),pi.set(this,!1),ui.set(this,!1),sn.set(this,!1),Js.set(this,Date.now()),an.set(this,!1),mi.set(this,void 0),Ne.set(this,void 0),cn.set(this,void 0),this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,arguments.length===0)throw new Error("The type argument must be specified");if(typeof e!="object"||!e)throw new Error('The "options" argument must be an object');let{bubbles:r,cancelable:n,composed:i}=e;Dt(this,pr,!!n,"f"),Dt(this,pi,!!r,"f"),Dt(this,ui,!!i,"f"),Dt(this,mi,`${t}`,"f"),Dt(this,Ne,null,"f"),Dt(this,cn,!1,"f")}initEvent(t,e,r){throw new Error("Method not implemented.")}stopImmediatePropagation(){this.stopPropagation()}preventDefault(){Dt(this,sn,!0,"f")}get target(){return Y(this,Ne,"f")}get currentTarget(){return Y(this,Ne,"f")}get srcElement(){return Y(this,Ne,"f")}get type(){return Y(this,mi,"f")}get cancelable(){return Y(this,pr,"f")}get defaultPrevented(){return Y(this,pr,"f")&&Y(this,sn,"f")}get timeStamp(){return Y(this,Js,"f")}composedPath(){return Y(this,cn,"f")?[Y(this,Ne,"f")]:[]}get returnValue(){return!Y(this,pr,"f")||!Y(this,sn,"f")}get bubbles(){return Y(this,pi,"f")}get composed(){return Y(this,ui,"f")}get eventPhase(){return Y(this,cn,"f")?he.AT_TARGET:he.NONE}get cancelBubble(){return Y(this,an,"f")}set cancelBubble(t){t&&Dt(this,an,!0,"f")}stopPropagation(){Dt(this,an,!0,"f")}get isTrusted(){return!1}},pr=new WeakMap,pi=new WeakMap,ui=new WeakMap,sn=new WeakMap,Js=new WeakMap,an=new WeakMap,mi=new WeakMap,Ne=new WeakMap,cn=new WeakMap,he.NONE=0,he.CAPTURING_PHASE=1,he.AT_TARGET=2,he.BUBBLING_PHASE=3,he);Object.defineProperties(Zs.prototype,{initEvent:F,stopImmediatePropagation:F,preventDefault:F,target:F,currentTarget:F,srcElement:F,type:F,cancelable:F,defaultPrevented:F,timeStamp:F,composedPath:F,returnValue:F,bubbles:F,composed:F,eventPhase:F,cancelBubble:F,stopPropagation:F,isTrusted:F});var Vc=(Lc=class extends Zs{constructor(t,e={}){super(t,e),fi.set(this,void 0),Dt(this,fi,e?.detail??null,"f")}initCustomEvent(t,e,r,n){throw new Error("Method not implemented.")}get detail(){return Y(this,fi,"f")}},fi=new WeakMap,Lc);Object.defineProperties(Vc.prototype,{detail:F});var Xt=Zs,ta=Vc;var et;var fm=(et=class{constructor(){this.STYLE_RULE=1,this.CHARSET_RULE=2,this.IMPORT_RULE=3,this.MEDIA_RULE=4,this.FONT_FACE_RULE=5,this.PAGE_RULE=6,this.NAMESPACE_RULE=10,this.KEYFRAMES_RULE=7,this.KEYFRAME_RULE=8,this.SUPPORTS_RULE=12,this.COUNTER_STYLE_RULE=11,this.FONT_FEATURE_VALUES_RULE=14,this.MARGIN_RULE=9,this.__parentStyleSheet=null,this.cssText=""}get parentRule(){return null}get parentStyleSheet(){return this.__parentStyleSheet}get type(){return 0}},et.STYLE_RULE=1,et.CHARSET_RULE=2,et.IMPORT_RULE=3,et.MEDIA_RULE=4,et.FONT_FACE_RULE=5,et.PAGE_RULE=6,et.NAMESPACE_RULE=10,et.KEYFRAMES_RULE=7,et.KEYFRAME_RULE=8,et.SUPPORTS_RULE=12,et.COUNTER_STYLE_RULE=11,et.FONT_FEATURE_VALUES_RULE=14,et.MARGIN_RULE=9,et);globalThis.Event??=Xt;globalThis.CustomEvent??=ta;var ra=Symbol(),zc=o=>typeof o=="boolean"?o:o?.capture??!1,Yt={__proto__:null};Yt.enumerable=!0;Object.freeze(Yt);var gi=class{constructor(){this.__eventListeners=new Map,this.__captureEventListeners=new Map}addEventListener(t,e,r){if(e==null)return;let n=zc(r)?this.__captureEventListeners:this.__eventListeners,i=n.get(t);if(i===void 0)i=new Map,n.set(t,i);else if(i.has(e))return;let s=typeof r=="object"&&r?r:{};s.signal?.addEventListener("abort",()=>this.removeEventListener(t,e,r)),i.set(e,s??{})}removeEventListener(t,e,r){if(e==null)return;let n=zc(r)?this.__captureEventListeners:this.__eventListeners,i=n.get(t);i!==void 0&&(i.delete(e),i.size||n.delete(t))}dispatchEvent(t){let e=this.__resolveFullEventPath();!t.composed&&this.__host&&(e=e.slice(0,e.indexOf(this.__host)));let r=!1,n=!1,i=Xt.NONE,s=null,a=null,l=null,c=t.stopPropagation,d=t.stopImmediatePropagation;Object.defineProperties(t,{target:{get(){return s??a},...Yt},srcElement:{get(){return t.target},...Yt},currentTarget:{get(){return l},...Yt},eventPhase:{get(){return i},...Yt},composedPath:{value:()=>e,...Yt},stopPropagation:{value:()=>{r=!0,c.call(t)},...Yt},stopImmediatePropagation:{value:()=>{n=!0,d.call(t)},...Yt}});let h=(u,g,y)=>{typeof u=="function"?u(t):typeof u?.handleEvent=="function"&&u.handleEvent(t),g.once&&y.delete(u)},f=()=>(l=null,i=Xt.NONE,!t.defaultPrevented),m=e.slice().reverse();s=!this.__host||!t.composed?this:null;let w=u=>{for(a=this;a.__host&&u.includes(a.__host);)a=a.__host};for(let u of m){!s&&(!a||a===u.__host)&&w(m.slice(m.indexOf(u))),l=u,i=u===t.target?Xt.AT_TARGET:Xt.CAPTURING_PHASE;let g=u.__captureEventListeners.get(t.type);if(g){for(let[y,v]of g)if(h(y,v,g),n)return f()}if(r)return f()}let x=t.bubbles?e:[this];a=null;for(let u of x){!s&&(!a||u===a.__host)&&w(x.slice(0,x.indexOf(u)+1)),l=u,i=u===t.target?Xt.AT_TARGET:Xt.BUBBLING_PHASE;let g=u.__eventListeners.get(t.type);if(g){for(let[y,v]of g)if(h(y,v,g),n)return f()}if(r)return f()}return f()}__resolveFullEventPath(){return this.__eventPathCache?this.__eventPathCache:this.__eventTargetParent?this.__eventPathCache=[this,...this.__eventTargetParent.__resolveFullEventPath()]:this.__eventPathCache=[this,Bc,Gh]}};var jc=new WeakMap,ln=o=>{let t=jc.get(o);return t===void 0&&jc.set(o,t=new Map),t},dn=class extends gi{getRootNode(t){return t?.composed?ea:this.__host?.__shadowRoot??ea}};var Fc=class extends dn{get adoptedStyleSheets(){return[]}createTreeWalker(){return{}}createTextNode(){return{}}createElement(){return{}}};var Bc=new Fc,ea=Bc;var Uc=class extends dn{constructor(t){if(super(),t!==ra)throw new TypeError("Illegal constructor");Object.assign(this,globalThis,{CustomElementRegistry:bi,customElements:ia,document:ea,Document:Fc,Element:Hc,EventTarget:gi,HTMLElement:Wc,Node:dn,ShadowRoot:Qc,window:this,Window:Uc})}};var Hc=class extends dn{constructor(){super(...arguments),this.__shadowRootMode=null,this.__shadowRoot=null,this.__internals=null}get attributes(){return Array.from(ln(this)).map(([t,e])=>({name:t,value:e}))}get shadowRoot(){return this.__shadowRootMode==="closed"?null:this.__shadowRoot}get localName(){return this.constructor.__localName}get tagName(){return this.localName?.toUpperCase()}setAttribute(t,e){ln(this).set(t,String(e))}removeAttribute(t){ln(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 ln(this).has(t)}attachShadow(t){this.__shadowRootMode=t.mode;let e=new Qc(ra,t);return e.__eventTargetParent=this,e.__host=this,this.__shadowRoot=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 $c(this);return this.__internals=t,t}getAttribute(t){return ln(this).get(t)??null}};var Wc=class extends Hc{},na=Wc;var Qc=class extends dn{get host(){return this.__host}constructor(t,e){if(super(),t!==t)throw new TypeError("Illegal constructor");this.mode=e.mode}};globalThis.litServerRoot??=Object.defineProperty(new na,"localName",{get(){return"lit-server-root"}});function Wh(){let o,t;return{promise:new Promise((r,n)=>{o=r,t=n}),resolve:o,reject:t}}var bi=class{constructor(){this.__definitions=new Map,this.__reverseDefinitions=new Map,this.__pendingWhenDefineds=new Map}define(t,e){if(this.__definitions.has(t))if(process.env.NODE_ENV==="development")console.warn(`'CustomElementRegistry' already has "${t}" defined. This may have been caused by live reload or hot module replacement in which case it can be safely ignored.
2
+ Make sure to test your application with a production build as repeat registrations will throw in production.`);else throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(this.__reverseDefinitions.has(e))throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the constructor has already been used with this registry for the tag name ${this.__reverseDefinitions.get(e)}`);e.__localName=t,this.__definitions.set(t,{ctor:e,observedAttributes:e.observedAttributes??[]}),this.__reverseDefinitions.set(e,t),this.__pendingWhenDefineds.get(t)?.resolve(e),this.__pendingWhenDefineds.delete(t)}get(t){return this.__definitions.get(t)?.ctor}getName(t){return this.__reverseDefinitions.get(t)??null}initialize(t){throw new Error("customElements.initialize is not currently supported in SSR. Please file a bug if you need it.")}upgrade(t){throw new Error("customElements.upgrade is not currently supported in SSR. Please file a bug if you need it.")}async whenDefined(t){let e=this.__definitions.get(t);if(e)return e.ctor;let r=this.__pendingWhenDefineds.get(t);return r||(r=Wh(),this.__pendingWhenDefineds.set(t,r)),r.promise}},Qh=bi;var ia=new Qh,Gh=new Uc(ra);var hn=globalThis,yi=hn.ShadowRoot&&(hn.ShadyCSS===void 0||hn.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,oa=Symbol(),Gc=new WeakMap,pn=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==oa)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(yi&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=Gc.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&Gc.set(e,t))}return t}toString(){return this.cssText}},Xc=o=>new pn(typeof o=="string"?o:o+"",void 0,oa),q=(o,...t)=>{let e=o.length===1?o[0]:t.reduce((r,n,i)=>r+(s=>{if(s._$cssResult$===!0)return s.cssText;if(typeof s=="number")return s;throw Error("Value passed to 'css' function must be a 'css' function result: "+s+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+o[i+1],o[0]);return new pn(e,o,oa)},Yc=(o,t)=>{if(yi)o.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),n=hn.litNonce;n!==void 0&&r.setAttribute("nonce",n),r.textContent=e.cssText,o.appendChild(r)}},sa=yi||hn.CSSStyleSheet===void 0?o=>o:o=>o instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return Xc(e)})(o):o;var{is:Xh,defineProperty:Yh,getOwnPropertyDescriptor:Kh,getOwnPropertyNames:Jh,getOwnPropertySymbols:Zh,getPrototypeOf:tp}=Object,fn=globalThis;fn.customElements??=ia;var Kc=fn.trustedTypes,ep=Kc?Kc.emptyScript:"",rp=fn.reactiveElementPolyfillSupport,un=(o,t)=>o,mn={toAttribute(o,t){switch(t){case Boolean:o=o?ep:null;break;case Object:case Array:o=o==null?o:JSON.stringify(o)}return o},fromAttribute(o,t){let e=o;switch(t){case Boolean:e=o!==null;break;case Number:e=o===null?null:Number(o);break;case Object:case Array:try{e=JSON.parse(o)}catch{e=null}}return e}},vi=(o,t)=>!Xh(o,t),Jc={attribute:!0,type:String,converter:mn,reflect:!1,useDefault:!1,hasChanged:vi};Symbol.metadata??=Symbol("metadata"),fn.litPropertyMetadata??=new WeakMap;var Kt=class extends(globalThis.HTMLElement??na){static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=Jc){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),n=this.getPropertyDescriptor(t,r,e);n!==void 0&&Yh(this.prototype,t,n)}}static getPropertyDescriptor(t,e,r){let{get:n,set:i}=Kh(this.prototype,t)??{get(){return this[e]},set(s){this[e]=s}};return{get:n,set(s){let a=n?.call(this);i?.call(this,s),this.requestUpdate(t,a,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??Jc}static _$Ei(){if(this.hasOwnProperty(un("elementProperties")))return;let t=tp(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(un("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(un("properties"))){let e=this.properties,r=[...Jh(e),...Zh(e)];for(let n of r)this.createProperty(n,e[n])}let t=this[Symbol.metadata];if(t!==null){let e=litPropertyMetadata.get(t);if(e!==void 0)for(let[r,n]of e)this.elementProperties.set(r,n)}this._$Eh=new Map;for(let[e,r]of this.elementProperties){let n=this._$Eu(e,r);n!==void 0&&this._$Eh.set(n,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 n of r)e.unshift(sa(n))}else t!==void 0&&e.push(sa(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(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.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(){let t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Yc(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$ET(t,e){let r=this.constructor.elementProperties.get(t),n=this.constructor._$Eu(t,r);if(n!==void 0&&r.reflect===!0){let i=(r.converter?.toAttribute!==void 0?r.converter:mn).toAttribute(e,r.type);this._$Em=t,i==null?this.removeAttribute(n):this.setAttribute(n,i),this._$Em=null}}_$AK(t,e){let r=this.constructor,n=r._$Eh.get(t);if(n!==void 0&&this._$Em!==n){let i=r.getPropertyOptions(n),s=typeof i.converter=="function"?{fromAttribute:i.converter}:i.converter?.fromAttribute!==void 0?i.converter:mn;this._$Em=n;let a=s.fromAttribute(e,i.type);this[n]=a??this._$Ej?.get(n)??a,this._$Em=null}}requestUpdate(t,e,r,n=!1,i){if(t!==void 0){let s=this.constructor;if(n===!1&&(i=this[t]),r??=s.getPropertyOptions(t),!((r.hasChanged??vi)(i,e)||r.useDefault&&r.reflect&&i===this._$Ej?.get(t)&&!this.hasAttribute(s._$Eu(t,r))))return;this.C(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(t,e,{useDefault:r,reflect:n,wrapped:i},s){r&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,s??e??this[t]),i!==!0||s!==void 0)||(this._$AL.has(t)||(this.hasUpdated||r||(e=void 0),this._$AL.set(t,e)),n===!0&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){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(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[n,i]of this._$Ep)this[n]=i;this._$Ep=void 0}let r=this.constructor.elementProperties;if(r.size>0)for(let[n,i]of r){let{wrapped:s}=i,a=this[n];s!==!0||this._$AL.has(n)||a===void 0||this.C(n,void 0,i,a)}}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach(r=>r.hostUpdate?.()),this.update(e)):this._$EM()}catch(r){throw t=!1,this._$EM(),r}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(t){}firstUpdated(t){}};Kt.elementStyles=[],Kt.shadowRootOptions={mode:"open"},Kt[un("elementProperties")]=new Map,Kt[un("finalized")]=new Map,rp?.({ReactiveElement:Kt}),(fn.reactiveElementVersions??=[]).push("2.1.2");var Si=globalThis,Zc=o=>o,wi=Si.trustedTypes,tl=wi?wi.createPolicy("lit-html",{createHTML:o=>o}):void 0,ca="$lit$",Jt=`lit$${Math.random().toFixed(9).slice(2)}$`,la="?"+Jt,np=`<${la}>`,Ve=Si.document===void 0?{createTreeWalker:()=>({})}:document,bn=()=>Ve.createComment(""),yn=o=>o===null||typeof o!="object"&&typeof o!="function",da=Array.isArray,sl=o=>da(o)||typeof o?.[Symbol.iterator]=="function",aa=`[
3
+ \f\r]`,gn=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,el=/-->/g,rl=/>/g,$e=RegExp(`>|${aa}(?:([^\\s"'>=/]+)(${aa}*=${aa}*(?:[^
4
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),nl=/'/g,il=/"/g,al=/^(?:script|style|textarea|title)$/i,ha=o=>(t,...e)=>({_$litType$:o,strings:t,values:e}),b=ha(1),wn=ha(2),Gm=ha(3),Z=Symbol.for("lit-noChange"),P=Symbol.for("lit-nothing"),ol=new WeakMap,Le=Ve.createTreeWalker(Ve,129);function cl(o,t){if(!da(o)||!o.hasOwnProperty("raw"))throw Error("invalid template strings array");return tl!==void 0?tl.createHTML(t):t}var ll=(o,t)=>{let e=o.length-1,r=[],n,i=t===2?"<svg>":t===3?"<math>":"",s=gn;for(let a=0;a<e;a++){let l=o[a],c,d,h=-1,f=0;for(;f<l.length&&(s.lastIndex=f,d=s.exec(l),d!==null);)f=s.lastIndex,s===gn?d[1]==="!--"?s=el:d[1]!==void 0?s=rl:d[2]!==void 0?(al.test(d[2])&&(n=RegExp("</"+d[2],"g")),s=$e):d[3]!==void 0&&(s=$e):s===$e?d[0]===">"?(s=n??gn,h=-1):d[1]===void 0?h=-2:(h=s.lastIndex-d[2].length,c=d[1],s=d[3]===void 0?$e:d[3]==='"'?il:nl):s===il||s===nl?s=$e:s===el||s===rl?s=gn:(s=$e,n=void 0);let m=s===$e&&o[a+1].startsWith("/>")?" ":"";i+=s===gn?l+np:h>=0?(r.push(c),l.slice(0,h)+ca+l.slice(h)+Jt+m):l+Jt+(h===-2?a:m)}return[cl(o,i+(o[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},vn=class o{constructor({strings:t,_$litType$:e},r){let n;this.parts=[];let i=0,s=0,a=t.length-1,l=this.parts,[c,d]=ll(t,e);if(this.el=o.createElement(c,r),Le.currentNode=this.el.content,e===2||e===3){let h=this.el.content.firstChild;h.replaceWith(...h.childNodes)}for(;(n=Le.nextNode())!==null&&l.length<a;){if(n.nodeType===1){if(n.hasAttributes())for(let h of n.getAttributeNames())if(h.endsWith(ca)){let f=d[s++],m=n.getAttribute(h).split(Jt),w=/([.?@])?(.*)/.exec(f);l.push({type:1,index:i,name:w[2],strings:m,ctor:w[1]==="."?qi:w[1]==="?"?Ci:w[1]==="@"?ki:je}),n.removeAttribute(h)}else h.startsWith(Jt)&&(l.push({type:6,index:i}),n.removeAttribute(h));if(al.test(n.tagName)){let h=n.textContent.split(Jt),f=h.length-1;if(f>0){n.textContent=wi?wi.emptyScript:"";for(let m=0;m<f;m++)n.append(h[m],bn()),Le.nextNode(),l.push({type:2,index:++i});n.append(h[f],bn())}}}else if(n.nodeType===8)if(n.data===la)l.push({type:2,index:i});else{let h=-1;for(;(h=n.data.indexOf(Jt,h+1))!==-1;)l.push({type:7,index:i}),h+=Jt.length-1}i++}}static createElement(t,e){let r=Ve.createElement("template");return r.innerHTML=t,r}};function ze(o,t,e=o,r){if(t===Z)return t;let n=r!==void 0?e._$Co?.[r]:e._$Cl,i=yn(t)?void 0:t._$litDirective$;return n?.constructor!==i&&(n?._$AO?.(!1),i===void 0?n=void 0:(n=new i(o),n._$AT(o,e,r)),r!==void 0?(e._$Co??=[])[r]=n:e._$Cl=n),n!==void 0&&(t=ze(o,n._$AS(o,t.values),n,r)),t}var xi=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){let{el:{content:e},parts:r}=this._$AD,n=(t?.creationScope??Ve).importNode(e,!0);Le.currentNode=n;let i=Le.nextNode(),s=0,a=0,l=r[0];for(;l!==void 0;){if(s===l.index){let c;l.type===2?c=new ur(i,i.nextSibling,this,t):l.type===1?c=new l.ctor(i,l.name,l.strings,this,t):l.type===6&&(c=new Ei(i,this,t)),this._$AV.push(c),l=r[++a]}s!==l?.index&&(i=Le.nextNode(),s++)}return Le.currentNode=Ve,n}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++}},ur=class o{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,r,n){this.type=2,this._$AH=P,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=n,this._$Cv=n?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=ze(this,t,e),yn(t)?t===P||t==null||t===""?(this._$AH!==P&&this._$AR(),this._$AH=P):t!==this._$AH&&t!==Z&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):sl(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!==P&&yn(this._$AH)?this._$AA.nextSibling.data=t:this.T(Ve.createTextNode(t)),this._$AH=t}$(t){let{values:e,_$litType$:r}=t,n=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=vn.createElement(cl(r.h,r.h[0]),this.options)),r);if(this._$AH?._$AD===n)this._$AH.p(e);else{let i=new xi(n,this),s=i.u(this.options);i.p(e),this.T(s),this._$AH=i}}_$AC(t){let e=ol.get(t.strings);return e===void 0&&ol.set(t.strings,e=new vn(t)),e}k(t){da(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,r,n=0;for(let i of t)n===e.length?e.push(r=new o(this.O(bn()),this.O(bn()),this,this.options)):r=e[n],r._$AI(i),n++;n<e.length&&(this._$AR(r&&r._$AB.nextSibling,n),e.length=n)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t!==this._$AB;){let r=Zc(t).nextSibling;Zc(t).remove(),t=r}}setConnected(t){this._$AM===void 0&&(this._$Cv=t,this._$AP?.(t))}},je=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,n,i){this.type=1,this._$AH=P,this._$AN=void 0,this.element=t,this.name=e,this._$AM=n,this.options=i,r.length>2||r[0]!==""||r[1]!==""?(this._$AH=Array(r.length-1).fill(new String),this.strings=r):this._$AH=P}_$AI(t,e=this,r,n){let i=this.strings,s=!1;if(i===void 0)t=ze(this,t,e,0),s=!yn(t)||t!==this._$AH&&t!==Z,s&&(this._$AH=t);else{let a=t,l,c;for(t=i[0],l=0;l<i.length-1;l++)c=ze(this,a[r+l],e,l),c===Z&&(c=this._$AH[l]),s||=!yn(c)||c!==this._$AH[l],c===P?t=P:t!==P&&(t+=(c??"")+i[l+1]),this._$AH[l]=c}s&&!n&&this.j(t)}j(t){t===P?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}},qi=class extends je{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===P?void 0:t}},Ci=class extends je{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==P)}},ki=class extends je{constructor(t,e,r,n,i){super(t,e,r,n,i),this.type=5}_$AI(t,e=this){if((t=ze(this,t,e,0)??P)===Z)return;let r=this._$AH,n=t===P&&r!==P||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,i=t!==P&&(r===P||n);n&&this.element.removeEventListener(this.name,this,r),i&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}},Ei=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){ze(this,t)}},K={M:ca,P:Jt,A:la,C:1,L:ll,R:xi,D:sl,V:ze,I:ur,H:je,N:Ci,U:ki,B:qi,F:Ei},ip=Si.litHtmlPolyfillSupport;ip?.(vn,ur),(Si.litHtmlVersions??=[]).push("3.3.3");var pa=(o,t,e)=>{let r=e?.renderBefore??t,n=r._$litPart$;if(n===void 0){let i=e?.renderBefore??null;r._$litPart$=n=new ur(t.insertBefore(bn(),i),i,void 0,e??{})}return n._$AI(o),n};var ua=globalThis,C=class extends Kt{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=pa(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return Z}};C._$litElement$=!0,C.finalized=!0,ua.litElementHydrateSupport?.({LitElement:C});var op=ua.litElementPolyfillSupport;op?.({LitElement:C});(ua.litElementVersions??=[]).push("4.2.2");var sp={attribute:!0,type:String,converter:mn,reflect:!1,hasChanged:vi},ap=(o=sp,t,e)=>{let{kind:r,metadata:n}=e,i=globalThis.litPropertyMetadata.get(n);if(i===void 0&&globalThis.litPropertyMetadata.set(n,i=new Map),r==="setter"&&((o=Object.create(o)).wrapped=!0),i.set(e.name,o),r==="accessor"){let{name:s}=e;return{set(a){let l=t.get.call(this);t.set.call(this,a),this.requestUpdate(s,l,o,!0,a)},init(a){return a!==void 0&&this.C(s,void 0,o,a),a}}}if(r==="setter"){let{name:s}=e;return function(a){let l=this[s];t.call(this,a),this.requestUpdate(s,l,o,!0,a)}}throw Error("Unsupported decorator location: "+r)};function p(o){return(t,e)=>typeof e=="object"?ap(o,t,e):((r,n,i)=>{let s=n.hasOwnProperty(i);return n.constructor.createProperty(i,r),s?Object.getOwnPropertyDescriptor(n,i):void 0})(o,t,e)}function _(o){return p({...o,state:!0,attribute:!1})}var pe=(o,t,e)=>(e.configurable=!0,e.enumerable=!0,Reflect.decorate&&typeof t!="object"&&Object.defineProperty(o,t,e),e);function mr(o,t){return(e,r,n)=>{let i=s=>s.renderRoot?.querySelector(o)??null;if(t){let{get:s,set:a}=typeof r=="object"?e:n??(()=>{let l=Symbol();return{get(){return this[l]},set(c){this[l]=c}}})();return pe(e,r,{get(){let l=s.call(this);return l===void 0&&(l=i(this),(l!==null||this.hasUpdated)&&a.call(this,l)),l}})}return pe(e,r,{get(){return i(this)}})}}function dl(o){return(t,e)=>{let{slot:r,selector:n}=o??{},i="slot"+(r?`[name=${r}]`:":not([name])");return pe(t,e,{get(){let s=this.renderRoot?.querySelector(i),a=s?.assignedElements(o)??[];return n===void 0?a:a.filter(l=>l.matches(n))}})}}var fr=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},hl={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},Nt=class extends C{constructor(){super(...arguments),this.weigths=new Map}createRenderRoot(){return this}get assessmentItem(){return this.renderRoot?.querySelector("qti-assessment-item")}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-item-ref-connected",{bubbles:!0,composed:!0,detail:{identifier:this.identifier,href:this.href,category:this.category}}))}render(){return this.myTemplate?this.myTemplate({xmlDoc:this.xmlDoc}):this.xmlDoc}};fr([p({type:String})],Nt.prototype,"category",void 0);fr([p({type:String})],Nt.prototype,"identifier",void 0);fr([p({type:Boolean,converter:hl})],Nt.prototype,"required",void 0);fr([p({type:Boolean,converter:hl})],Nt.prototype,"fixed",void 0);fr([p({type:String})],Nt.prototype,"href",void 0);fr([p({type:Object,attribute:!1})],Nt.prototype,"xmlDoc",void 0);var ue=class extends Event{constructor(t,e,r,n){super("context-request",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=e,this.callback=r,this.subscribe=n??!1}};var gr=class{constructor(t,e,r,n){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(i,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=i,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(i,s)),this.unsubscribe=s},this.host=t,e.context!==void 0){let i=e;this.context=i.context,this.callback=i.callback,this.subscribe=i.subscribe??!1}else this.context=e,this.callback=r,this.subscribe=n??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new ue(this.context,this.host,this.t,this.subscribe))}};var Ai=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:n}=this.subscriptions.get(t);t(this.value,n)}clearCallbacks(){this.subscriptions.clear()}};var ma=class extends Event{constructor(t,e){super("context-provider",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=e}},br=class extends Ai{constructor(t,e,r){super(e.context!==void 0?e.initialValue:r),this.onContextRequest=n=>{if(n.context!==this.context)return;let i=n.contextTarget??n.composedPath()[0];i!==this.host&&(n.stopPropagation(),this.addCallback(n.callback,i,n.subscribe))},this.onProviderRequest=n=>{if(n.context!==this.context||(n.contextTarget??n.composedPath()[0])===this.host)return;let i=new Set;for(let[s,{consumerHost:a}]of this.subscriptions)i.has(s)||(i.add(s),a.dispatchEvent(new ue(this.context,a,s,!0)));n.stopPropagation()},this.host=t,e.context!==void 0?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new ma(this.context,this.host))}};function B({context:o}){return(t,e)=>{let r=new WeakMap;if(typeof e=="object")return{get(){return t.get.call(this)},set(n){return r.get(this).setValue(n),t.set.call(this,n)},init(n){return r.set(this,new br(this,{context:o,initialValue:n})),n}};{t.constructor.addInitializer((s=>{r.set(s,new br(s,{context:o}))}));let n=Object.getOwnPropertyDescriptor(t,e),i;if(n===void 0){let s=new WeakMap;i={get(){return s.get(this)},set(a){r.get(this).setValue(a),s.set(this,a)},configurable:!0,enumerable:!0}}else{let s=n.set;i={...n,set(a){r.get(this).setValue(a),s?.call(this,a)}}}return void Object.defineProperty(t,e,i)}}}function T({context:o,subscribe:t}){return(e,r)=>{typeof r=="object"?r.addInitializer((function(){new gr(this,{context:o,callback:n=>{e.set.call(this,n)},subscribe:t})})):e.constructor.addInitializer((n=>{new gr(n,{context:o,callback:i=>{n[r]=i},subscribe:t})}))}}var pl=[];var ga=class extends Set{#t;constructor(t){super(),this.#t=t}add(t){return super.add(t),this.#e(),this}delete(t){let e=super.delete(t);return this.#e(),e}clear(){super.clear(),this.#e()}#e(){this.#t.isConnected?this.#r():queueMicrotask(()=>this.#r())}#r(){this.size===0?this.#t.removeAttribute("data-state"):this.#t.setAttribute("data-state",Array.from(this).join(" "))}},fa="custom-state-support-probe";function cp(o){if(!("states"in ElementInternals.prototype))return"missing";if(typeof customElements>"u")return"modern";try{customElements.get(fa)||customElements.define(fa,class extends HTMLElement{});let t=o.call(document.createElement(fa)).states;return t?(t.add("probe"),t.delete("probe"),"modern"):"missing"}catch{return"legacy"}}var ul=!1;function ml(){if(ul)return"already-installed";if(typeof HTMLElement>"u"||typeof ElementInternals>"u")return"modern";let o=HTMLElement.prototype.attachInternals;if(!o)return"modern";let t=cp(o);return t==="modern"||(ul=!0,HTMLElement.prototype.attachInternals=function(){let r=o.call(this);return Object.defineProperty(r,"states",{configurable:!0,enumerable:!0,value:new ga(this)}),r}),t}ml();for(let{tag:o,ctor:t}of pl)customElements.get(o)||customElements.define(o,t);var me=Symbol("computedItemContext");var z=Symbol("computedContext");var pt=Symbol("configContext");var yr=Symbol("interactionContext");var j=Symbol("item");var fl=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}];var lp=/^[A-Za-z0-9-]+$/,dp=o=>typeof o=="string"&&lp.test(o),kg=o=>dp(o)?o:void 0,ut=Symbol("qtiContext");var ba={view:"candidate"},Lt=Symbol("testContext");var ya={items:[],testOutcomeVariables:[]},it=Symbol("testContext");var O=q`
5
5
  :host {
6
6
  box-sizing: border-box;
7
7
  }
@@ -55,20 +55,20 @@ Make sure to test your application with a production build as repeat registratio
55
55
  [part~='message'] {
56
56
  display: none;
57
57
  }
58
- `;var Fe=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},D=class extends C{#t;static{this.formAssociated=!0}get internals(){return this._internals}get registersWithItem(){return!0}get isInline(){return!1}get responseVariable(){if(!this._context?.variables)return;let t=this._context.variables.filter(r=>r.type==="response"),e=this.getAttribute("response-identifier");return t.find(r=>r.identifier===e)}get value(){return JSON.stringify(this.response)}set value(t){this.response=t?JSON.parse(t):null}reportValidity(){let t=this._internals.validity.valid,e=this.validationDisplayMode;return(e==="native"||e==="both")&&this._internals.reportValidity(),e==="inline"||e==="both"?this.updateInlineValidationMessage():this.clearInlineValidationMessage(),e==="none"&&this.clearInlineValidationMessage(),t}get validationDisplayMode(){return this.configContext?.validationDisplayMode??"inline"}resolveAllowReorder(t){let e=t?.defaultWhenUnset??!0,r=this.configContext;return r&&r.allowReorder!==void 0?r.allowReorder:e}resolveDisableAfterMaxReached(t){let e=t?.defaultWhenUnset??!1,r=this.configContext;return r?r.disableAfterMaxReached!==void 0?r.disableAfterMaxReached:r.disableAfterIfMaxChoicesReached!==void 0?(this.#t||(this.#t=!0,console.log("[QTI Config] `disableAfterIfMaxChoicesReached` is deprecated. Use `disableAfterMaxReached` instead.")),r.disableAfterIfMaxChoicesReached):e:e}setInteractionValidity(t,e="",r,i){let o=r??this;this._internals.setValidity(t?{}:{customError:!0},e,o),i?.suppressInline!==!0&&(this.validationDisplayMode==="inline"||this.validationDisplayMode==="both")&&this.updateInlineValidationMessage()}updateInlineValidationMessage(){let t=this.getValidationMessageElement();if(t){if(!this._internals.validity.valid){t.textContent=this._internals.validationMessage,t.style.setProperty("display","block","important");return}t.textContent="",t.style.display="none"}}clearInlineValidationMessage(){let t=this.getValidationMessageElement();t&&(t.textContent="",t.style.display="none")}getValidationMessageElement(){return this.shadowRoot?.querySelector("#validation-message")}reset(){this.response=null}formResetCallback(){this.reset()}connectedCallback(){super.connectedCallback(),this.registersWithItem&&this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,cancelable:!1,detail:{interactionElement:this,responseIdentifier:this.responseIdentifier}}))}saveResponse(t,e){this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,cancelable:!1,detail:{responseIdentifier:this.responseIdentifier,response:Array.isArray(t)?[...t]:t,...e!==void 0?{state:e}:{}}}))}constructor(){super(),this.#t=!1,this._interactionContext={choiceRole:null,draggablesSelector:null},this.disabled=!1,this.readonly=!1,this._internals=this.attachInternals()}firstUpdated(t){}};Fe([T({context:j,subscribe:!0})],D.prototype,"_context",void 0);Fe([T({context:pt,subscribe:!0})],D.prototype,"configContext",void 0);Fe([B({context:yr})],D.prototype,"_interactionContext",void 0);Fe([p({type:String,attribute:"response-identifier"})],D.prototype,"responseIdentifier",void 0);Fe([p({reflect:!0,type:Boolean})],D.prototype,"disabled",void 0);Fe([p({reflect:!0,type:Boolean})],D.prototype,"readonly",void 0);Fe([p({type:String})],D.prototype,"name",void 0);var vr=class extends C{render(){return b`<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(i=>i.innerHTML.trim());return r.length>1||t==="multiple"||t==="ordered"?r:r[0]}};var Io=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},A=class extends C{constructor(){super(...arguments),this.getVariables=()=>Array.from(this.children).map(t=>{switch(console.debug("getVariables",t.tagName.toLowerCase()),t.tagName.toLowerCase()){case"qti-base-value":return{baseType:t.getAttribute("base-type"),value:t.textContent.trim(),cardinality:"single"};case"qti-variable":{let e=t.getAttribute("identifier")||"";return e==="QTI_CONTEXT"?this.qtiContext?.QTI_CONTEXT?{identifier:"QTI_CONTEXT",baseType:"record",value:this.qtiContext.QTI_CONTEXT,cardinality:"record",type:"context"}:(console.warn("QTI_CONTEXT not available"),{identifier:"QTI_CONTEXT",baseType:"record",value:this.qtiContext.QTI_CONTEXT,cardinality:"record",type:"context"}):this.resolveVariable(e)}case"qti-multiple":{let r=t.getResult();return console.debug("values",r),r?.length>0?{identifier:"",baseType:r[0].baseType,value:r.map(i=>i.value),cardinality:"multiple",type:"response"}:null}case"qti-ordered":{let r=t.getResult();return r?.length>0?{identifier:"",baseType:r[0].baseType,value:r.map(i=>i.value),cardinality:"ordered",type:"response"}:null}case"qti-repeat":{let r=t.getResult();return r?.length>0?r:null}case"qti-correct":{let e=t.getAttribute("identifier")||"",r=this.context?.variables?.find(i=>i.identifier===e)||null;return{baseType:r.baseType,value:r.correctResponse,cardinality:r.cardinality}}default:{try{return{baseType:"integer",value:t.getResult()?.toString()||null,cardinality:"single"}}catch{console.warn("default not sufficient")}return null}}}).flatMap(t=>Array.isArray(t)?t:[t]).filter(t=>t!==null)}static{this.styles=q`
58
+ `;var Fe=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},D=class extends C{#t;static{this.formAssociated=!0}get internals(){return this._internals}get registersWithItem(){return!0}get isInline(){return!1}get responseVariable(){if(!this._context?.variables)return;let t=this._context.variables.filter(r=>r.type==="response"),e=this.getAttribute("response-identifier");return t.find(r=>r.identifier===e)}get value(){return JSON.stringify(this.response)}set value(t){this.response=t?JSON.parse(t):null}reportValidity(){let t=this._internals.validity.valid,e=this.validationDisplayMode;return(e==="native"||e==="both")&&this._internals.reportValidity(),e==="inline"||e==="both"?this.updateInlineValidationMessage():this.clearInlineValidationMessage(),e==="none"&&this.clearInlineValidationMessage(),t}get validationDisplayMode(){return this.configContext?.validationDisplayMode??"inline"}resolveAllowReorder(t){let e=t?.defaultWhenUnset??!0,r=this.configContext;return r&&r.allowReorder!==void 0?r.allowReorder:e}resolveDisableAfterMaxReached(t){let e=t?.defaultWhenUnset??!1,r=this.configContext;return r?r.disableAfterMaxReached!==void 0?r.disableAfterMaxReached:r.disableAfterIfMaxChoicesReached!==void 0?(this.#t||(this.#t=!0,console.log("[QTI Config] `disableAfterIfMaxChoicesReached` is deprecated. Use `disableAfterMaxReached` instead.")),r.disableAfterIfMaxChoicesReached):e:e}setInteractionValidity(t,e="",r,n){let i=r??this;this._internals.setValidity(t?{}:{customError:!0},e,i),n?.suppressInline!==!0&&(this.validationDisplayMode==="inline"||this.validationDisplayMode==="both")&&this.updateInlineValidationMessage()}updateInlineValidationMessage(){let t=this.getValidationMessageElement();if(t){if(!this._internals.validity.valid){t.textContent=this._internals.validationMessage,t.style.setProperty("display","block","important");return}t.textContent="",t.style.display="none"}}clearInlineValidationMessage(){let t=this.getValidationMessageElement();t&&(t.textContent="",t.style.display="none")}getValidationMessageElement(){return this.shadowRoot?.querySelector("#validation-message")}reset(){this.response=null}formResetCallback(){this.reset()}connectedCallback(){super.connectedCallback(),this.registersWithItem&&this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,cancelable:!1,detail:{interactionElement:this,responseIdentifier:this.responseIdentifier}}))}saveResponse(t,e){this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,cancelable:!1,detail:{responseIdentifier:this.responseIdentifier,response:Array.isArray(t)?[...t]:t,...e!==void 0?{state:e}:{}}}))}constructor(){super(),this.#t=!1,this._interactionContext={choiceRole:null,draggablesSelector:null},this.disabled=!1,this.readonly=!1,this._internals=this.attachInternals()}firstUpdated(t){}};Fe([T({context:j,subscribe:!0})],D.prototype,"_context",void 0);Fe([T({context:pt,subscribe:!0})],D.prototype,"configContext",void 0);Fe([B({context:yr})],D.prototype,"_interactionContext",void 0);Fe([p({type:String,attribute:"response-identifier"})],D.prototype,"responseIdentifier",void 0);Fe([p({reflect:!0,type:Boolean})],D.prototype,"disabled",void 0);Fe([p({reflect:!0,type:Boolean})],D.prototype,"readonly",void 0);Fe([p({type:String})],D.prototype,"name",void 0);var vr=class extends C{render(){return b`<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(n=>n.innerHTML.trim());return r.length>1||t==="multiple"||t==="ordered"?r:r[0]}};var Ii=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},A=class extends C{constructor(){super(...arguments),this.getVariables=()=>Array.from(this.children).map(t=>{switch(console.debug("getVariables",t.tagName.toLowerCase()),t.tagName.toLowerCase()){case"qti-base-value":return{baseType:t.getAttribute("base-type"),value:t.textContent.trim(),cardinality:"single"};case"qti-variable":{let e=t.getAttribute("identifier")||"";return e==="QTI_CONTEXT"?this.qtiContext?.QTI_CONTEXT?{identifier:"QTI_CONTEXT",baseType:"record",value:this.qtiContext.QTI_CONTEXT,cardinality:"record",type:"context"}:(console.warn("QTI_CONTEXT not available"),{identifier:"QTI_CONTEXT",baseType:"record",value:this.qtiContext.QTI_CONTEXT,cardinality:"record",type:"context"}):this.resolveVariable(e)}case"qti-multiple":{let r=t.getResult();return console.debug("values",r),r?.length>0?{identifier:"",baseType:r[0].baseType,value:r.map(n=>n.value),cardinality:"multiple",type:"response"}:null}case"qti-ordered":{let r=t.getResult();return r?.length>0?{identifier:"",baseType:r[0].baseType,value:r.map(n=>n.value),cardinality:"ordered",type:"response"}:null}case"qti-repeat":{let r=t.getResult();return r?.length>0?r:null}case"qti-correct":{let e=t.getAttribute("identifier")||"",r=this.context?.variables?.find(n=>n.identifier===e)||null;return{baseType:r.baseType,value:r.correctResponse,cardinality:r.cardinality}}default:{try{return{baseType:"integer",value:t.getResult()?.toString()||null,cardinality:"single"}}catch{console.warn("default not sufficient")}return null}}}).flatMap(t=>Array.isArray(t)?t:[t]).filter(t=>t!==null)}static{this.styles=q`
59
59
  slot {
60
60
  display: none;
61
61
  }
62
62
  `}render(){return b`<pre>${JSON.stringify(this.result,null,2)}</pre>
63
- <slot></slot>`}calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}resolveVariable(t){return this.context?.variables.find(e=>e.identifier===t)??this._testContext?.testOutcomeVariables?.find(e=>e.identifier===t)??null}};Io([_()],A.prototype,"result",void 0);Io([T({context:j,subscribe:!0}),_()],A.prototype,"context",void 0);Io([T({context:ut,subscribe:!0}),_()],A.prototype,"qtiContext",void 0);Io([T({context:ot,subscribe:!0}),_()],A.prototype,"_testContext",void 0);var mt=class extends A{calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};var hp=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),Ct=n=>{if(typeof n=="string")return n;let t=hp();return t==="."?n.toLocaleString():n.toString().replace(".","").replace(t,".")};function va(n){return n==null}function _o(n){return n.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}var wr=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},nt=class extends C{constructor(){super(...arguments),this.showHide="show"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(t){let e=this._context.variables.find(i=>i.identifier===t)||null;if(this.outcomeIdentifier!==t||!e)return;let r=!1;Array.isArray(e.value)?r=e.value.includes(this.identifier):r=!va(this.identifier)&&!va(e?.value)&&this.identifier===e.value||!1,this.#t(r)}#t(t){if(!this.#e()){this.showStatus="off";return}this.showStatus=t&&this.showHide==="show"||!t&&this.showHide==="hide"?"on":"off"}#e(){if(!this._computedContext)return!0;let t=this._computedContext.testParts?.find(i=>i.active)?.sections.flatMap(i=>i.items).find(i=>i.active);if(!t||t.showFeedback)return!0;if(t.adaptive)return t.completionStatus!=="completed";let e=t.maxAttempts??1;return e<=0?!0:(Number(this._context?.variables?.find(i=>i.identifier==="numAttempts")?.value)||0)<e}};wr([p({type:String,attribute:"show-hide"})],nt.prototype,"showHide",void 0);wr([p({type:String,attribute:"outcome-identifier"})],nt.prototype,"outcomeIdentifier",void 0);wr([p({type:String})],nt.prototype,"identifier",void 0);wr([p({type:String,attribute:!1})],nt.prototype,"showStatus",void 0);wr([T({context:j,subscribe:!0}),_()],nt.prototype,"_context",void 0);wr([T({context:z,subscribe:!0}),_()],nt.prototype,"_computedContext",void 0);function wa(n){if(n==null)return null;if(!n.includes(",")){let e=n.trim();return e.length>0?e:null}let t=n.split(",").map(e=>e.trim()).filter(e=>e.length>0);return t.length===0?null:t.length===1?t[0]:t}function xa(n){if(n==null)return null;if(Array.isArray(n)){let e=n.map(r=>r.trim()).filter(r=>r.length>0);return e.length>0?e.join(","):null}let t=n.trim();return t.length>0?t:null}function*lb(n){if(n!=null){if(Array.isArray(n)){for(let t of n){let e=t.trim();e&&(yield e)}return}if(!n.includes(",")){let t=n.trim();t&&(yield t);return}for(let t of n.split(",")){let e=t.trim();e&&(yield e)}}}function db(n){let[t,e,...r]=n.trim().split(/\s+/);if(!t||!e||r.length>0)throw new Error(`malformed directed-pair value: "${n}" (expected "source target")`);return{source:t,target:e}}function hb(n,t){return`${n} ${t}`}function pb(n){let[t,e,...r]=n.trim().split(/\s+/),i=Number(t),o=Number(e);if(!Number.isFinite(i)||!Number.isFinite(o)||r.length>0)throw new Error(`malformed point value: "${n}" (expected "x y" numeric coords)`);return{x:i,y:o}}function ub(n,t){return`${n} ${t}`}function zt(n){let{emptyAs:t}=n,e=r=>r===t||r==null||r===""||Array.isArray(r)&&r.length===0;return{fromAttribute:r=>{let i=wa(r);return i===null?t:i},toAttribute:r=>e(r)?null:xa(r)}}var gl=class extends C{};var J=class{static isPointInArea(t,e,r){if(r!=="point")return console.warn(`Base type ${r} is not supported for point area mapping.`),!1;let[i,o]=t.split(" ").map(Number),[s,...a]=e.split(","),l=a.map(Number);switch(s.toLowerCase()){case"circle":case"default":{let[c,d,h]=l;return l.length!==3?(console.warn(`Invalid circle definition: ${e}`),!1):Math.sqrt((i-c)**2+(o-d)**2)<=h}case"rect":{let[c,d,h,f]=l;return l.length!==4?(console.warn(`Invalid rectangle definition: ${e}`),!1):i>=c&&i<=h&&o>=d&&o<=f}case"ellipse":{let[c,d,h,f]=l;if(l.length!==4)return console.warn(`Invalid ellipse definition: ${e}`),!1;let m=(i-c)**2/h**2,w=(o-d)**2/f**2;return m+w<=1}case"poly":{if(l.length<6||l.length%2!==0)return console.warn(`Invalid polygon definition: ${e}`),!1;let c=[];for(let d=0;d<l.length;d+=2)c.push({x:l[d],y:l[d+1]});return this.isPointInPolygon({x:i,y:o},c)}default:return console.warn(`Unsupported shape type: ${s}`),!1}}static isPointInPolygon(t,e){let r=!1;for(let i=0,o=e.length-1;i<e.length;o=i++){let s=e[i].x,a=e[i].y,l=e[o].x,c=e[o].y;a>t.y!=c>t.y&&t.x<(l-s)*(t.y-a)/(c-a)+s&&(r=!r)}return r}static compareSingleValues(t,e,r){switch(r){case"identifier":case"string":return t===e;case"integer":{let i=parseInt(t,10),o=parseInt(e,10);if(!isNaN(i)&&!isNaN(o))return i===o;console.error(`Cannot convert ${t} and/or ${e} to int.`);break}case"float":{let i=parseFloat(t),o=parseFloat(e);if(!isNaN(i)&&!isNaN(o))return i===o;console.error(`couldn't convert ${t} and/or ${e} to float.`);break}case"pair":case"directedPair":{let i=t.split(" ").sort(),o=e.split(" ").sort();if(i.length===2&&o.length===2)return r==="pair"&&(i.sort(),o.sort()),i.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 fe=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},qa={fromAttribute(n){return n==="true"},toAttribute(n){return n?"true":"false"}},ft=class extends C{get title(){return this.#t}set title(t){this.#t=t,this.removeAttribute("title"),this.setAttribute("data-title",t)}#t="";async connectedCallback(){this.#t=this.getAttribute("title")||"",super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-assessment-section-connected",{bubbles:!0,composed:!0}))}render(){return b`<slot name="qti-rubric-block"></slot><slot></slot>`}};fe([p({type:String})],ft.prototype,"identifier",void 0);fe([p({type:String})],ft.prototype,"required",void 0);fe([p({type:Boolean,converter:qa})],ft.prototype,"fixed",void 0);fe([p({type:Boolean,converter:qa})],ft.prototype,"visible",void 0);fe([p({type:Boolean,converter:qa,attribute:"keep-together"})],ft.prototype,"keepTogether",void 0);fe([p({type:String,attribute:"navigation-mode"})],ft.prototype,"navigationMode",void 0);fe([p({type:String,attribute:"submission-mode"})],ft.prototype,"submissionMode",void 0);fe([T({context:ot,subscribe:!0})],ft.prototype,"_testContext",void 0);var Ca=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Be=class extends C{get title(){return this.#t}set title(t){this.#t=t,this.removeAttribute("title"),this.setAttribute("data-title",t)}#t="";async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-test-connected",{detail:this,bubbles:!0,composed:!0}))}render(){return b` <slot></slot>`}};Ca([p({type:String})],Be.prototype,"identifier",void 0);Ca([p({type:String})],Be.prototype,"title",null);Ca([T({context:ot,subscribe:!0})],Be.prototype,"_testContext",void 0);var Ue=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},xr={fromAttribute(n){return n==="true"},toAttribute(n){return n?"true":"false"}},kt=class extends C{constructor(){super(...arguments),this.maxAttempts=1,this.showFeedback=!1,this.allowReview=!0,this.showSolution=!1,this.allowComment=!1,this.allowSkipping=!0,this.validateResponses=!1}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-item-session-control-connected",{detail:this,bubbles:!0,composed:!0}))}render(){return b`<slot></slot>`}};Ue([p({type:Number,attribute:"max-attempts"})],kt.prototype,"maxAttempts",void 0);Ue([p({type:Boolean,converter:xr,attribute:"show-feedback"})],kt.prototype,"showFeedback",void 0);Ue([p({type:Boolean,converter:xr,attribute:"allow-review"})],kt.prototype,"allowReview",void 0);Ue([p({type:Boolean,converter:xr,attribute:"show-solution"})],kt.prototype,"showSolution",void 0);Ue([p({type:Boolean,converter:xr,attribute:"allow-comment"})],kt.prototype,"allowComment",void 0);Ue([p({type:Boolean,converter:xr,attribute:"allow-skipping"})],kt.prototype,"allowSkipping",void 0);Ue([p({type:Boolean,converter:xr,attribute:"validate-responses"})],kt.prototype,"validateResponses",void 0);var To=class extends C{static{this.styles=[q`
63
+ <slot></slot>`}calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}resolveVariable(t){return this.context?.variables.find(e=>e.identifier===t)??this._testContext?.testOutcomeVariables?.find(e=>e.identifier===t)??null}};Ii([_()],A.prototype,"result",void 0);Ii([T({context:j,subscribe:!0}),_()],A.prototype,"context",void 0);Ii([T({context:ut,subscribe:!0}),_()],A.prototype,"qtiContext",void 0);Ii([T({context:it,subscribe:!0}),_()],A.prototype,"_testContext",void 0);var mt=class extends A{calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};var hp=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),Ct=o=>{if(typeof o=="string")return o;let t=hp();return t==="."?o.toLocaleString():o.toString().replace(".","").replace(t,".")};function va(o){return o==null}function _i(o){return o.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}var wr=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ot=class extends C{constructor(){super(...arguments),this.showHide="show"}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(t){let e=this._context.variables.find(n=>n.identifier===t)||null;if(this.outcomeIdentifier!==t||!e)return;let r=!1;Array.isArray(e.value)?r=e.value.includes(this.identifier):r=!va(this.identifier)&&!va(e?.value)&&this.identifier===e.value||!1,this.#t(r)}#t(t){if(!this.#e()){this.showStatus="off";return}this.showStatus=t&&this.showHide==="show"||!t&&this.showHide==="hide"?"on":"off"}#e(){if(!this._computedContext)return!0;let t=this._computedContext.testParts?.find(n=>n.active)?.sections.flatMap(n=>n.items).find(n=>n.active);if(!t||t.showFeedback)return!0;if(t.adaptive)return t.completionStatus!=="completed";let e=t.maxAttempts??1;return e<=0?!0:(Number(this._context?.variables?.find(n=>n.identifier==="numAttempts")?.value)||0)<e}};wr([p({type:String,attribute:"show-hide"})],ot.prototype,"showHide",void 0);wr([p({type:String,attribute:"outcome-identifier"})],ot.prototype,"outcomeIdentifier",void 0);wr([p({type:String})],ot.prototype,"identifier",void 0);wr([p({type:String,attribute:!1})],ot.prototype,"showStatus",void 0);wr([T({context:j,subscribe:!0}),_()],ot.prototype,"_context",void 0);wr([T({context:z,subscribe:!0}),_()],ot.prototype,"_computedContext",void 0);function wa(o){if(o==null)return null;if(!o.includes(",")){let e=o.trim();return e.length>0?e:null}let t=o.split(",").map(e=>e.trim()).filter(e=>e.length>0);return t.length===0?null:t.length===1?t[0]:t}function xa(o){if(o==null)return null;if(Array.isArray(o)){let e=o.map(r=>r.trim()).filter(r=>r.length>0);return e.length>0?e.join(","):null}let t=o.trim();return t.length>0?t:null}function*cb(o){if(o!=null){if(Array.isArray(o)){for(let t of o){let e=t.trim();e&&(yield e)}return}if(!o.includes(",")){let t=o.trim();t&&(yield t);return}for(let t of o.split(",")){let e=t.trim();e&&(yield e)}}}function lb(o){let[t,e,...r]=o.trim().split(/\s+/);if(!t||!e||r.length>0)throw new Error(`malformed directed-pair value: "${o}" (expected "source target")`);return{source:t,target:e}}function db(o,t){return`${o} ${t}`}function hb(o){let[t,e,...r]=o.trim().split(/\s+/),n=Number(t),i=Number(e);if(!Number.isFinite(n)||!Number.isFinite(i)||r.length>0)throw new Error(`malformed point value: "${o}" (expected "x y" numeric coords)`);return{x:n,y:i}}function pb(o,t){return`${o} ${t}`}function zt(o){let{emptyAs:t}=o,e=r=>r===t||r==null||r===""||Array.isArray(r)&&r.length===0;return{fromAttribute:r=>{let n=wa(r);return n===null?t:n},toAttribute:r=>e(r)?null:xa(r)}}var gl=class extends C{};var J=class{static isPointInArea(t,e,r){if(r!=="point")return console.warn(`Base type ${r} is not supported for point area mapping.`),!1;let[n,i]=t.split(" ").map(Number),[s,...a]=e.split(","),l=a.map(Number);switch(s.toLowerCase()){case"circle":case"default":{let[c,d,h]=l;return l.length!==3?(console.warn(`Invalid circle definition: ${e}`),!1):Math.sqrt((n-c)**2+(i-d)**2)<=h}case"rect":{let[c,d,h,f]=l;return l.length!==4?(console.warn(`Invalid rectangle definition: ${e}`),!1):n>=c&&n<=h&&i>=d&&i<=f}case"ellipse":{let[c,d,h,f]=l;if(l.length!==4)return console.warn(`Invalid ellipse definition: ${e}`),!1;let m=(n-c)**2/h**2,w=(i-d)**2/f**2;return m+w<=1}case"poly":{if(l.length<6||l.length%2!==0)return console.warn(`Invalid polygon definition: ${e}`),!1;let c=[];for(let d=0;d<l.length;d+=2)c.push({x:l[d],y:l[d+1]});return this.isPointInPolygon({x:n,y:i},c)}default:return console.warn(`Unsupported shape type: ${s}`),!1}}static isPointInPolygon(t,e){let r=!1;for(let n=0,i=e.length-1;n<e.length;i=n++){let s=e[n].x,a=e[n].y,l=e[i].x,c=e[i].y;a>t.y!=c>t.y&&t.x<(l-s)*(t.y-a)/(c-a)+s&&(r=!r)}return r}static compareSingleValues(t,e,r){switch(r){case"identifier":case"string":return t===e;case"integer":{let n=parseInt(t,10),i=parseInt(e,10);if(!isNaN(n)&&!isNaN(i))return n===i;console.error(`Cannot convert ${t} and/or ${e} to int.`);break}case"float":{let n=parseFloat(t),i=parseFloat(e);if(!isNaN(n)&&!isNaN(i))return n===i;console.error(`couldn't convert ${t} and/or ${e} to float.`);break}case"pair":case"directedPair":{let n=t.split(" ").sort(),i=e.split(" ").sort();if(n.length===2&&i.length===2)return r==="pair"&&(n.sort(),i.sort()),n.join(" ")===i.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${t} 2: ${e}`);break}}return!1}};var fe=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},qa={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},ft=class extends C{get title(){return this.#t}set title(t){this.#t=t,this.removeAttribute("title"),this.setAttribute("data-title",t)}#t="";async connectedCallback(){this.#t=this.getAttribute("title")||"",super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-assessment-section-connected",{bubbles:!0,composed:!0}))}render(){return b`<slot name="qti-rubric-block"></slot><slot></slot>`}};fe([p({type:String})],ft.prototype,"identifier",void 0);fe([p({type:String})],ft.prototype,"required",void 0);fe([p({type:Boolean,converter:qa})],ft.prototype,"fixed",void 0);fe([p({type:Boolean,converter:qa})],ft.prototype,"visible",void 0);fe([p({type:Boolean,converter:qa,attribute:"keep-together"})],ft.prototype,"keepTogether",void 0);fe([p({type:String,attribute:"navigation-mode"})],ft.prototype,"navigationMode",void 0);fe([p({type:String,attribute:"submission-mode"})],ft.prototype,"submissionMode",void 0);fe([T({context:it,subscribe:!0})],ft.prototype,"_testContext",void 0);var Ca=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Be=class extends C{get title(){return this.#t}set title(t){this.#t=t,this.removeAttribute("title"),this.setAttribute("data-title",t)}#t="";async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-assessment-test-connected",{detail:this,bubbles:!0,composed:!0}))}render(){return b` <slot></slot>`}};Ca([p({type:String})],Be.prototype,"identifier",void 0);Ca([p({type:String})],Be.prototype,"title",null);Ca([T({context:it,subscribe:!0})],Be.prototype,"_testContext",void 0);var Ue=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},xr={fromAttribute(o){return o==="true"},toAttribute(o){return o?"true":"false"}},kt=class extends C{constructor(){super(...arguments),this.maxAttempts=1,this.showFeedback=!1,this.allowReview=!0,this.showSolution=!1,this.allowComment=!1,this.allowSkipping=!0,this.validateResponses=!1}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-item-session-control-connected",{detail:this,bubbles:!0,composed:!0}))}render(){return b`<slot></slot>`}};Ue([p({type:Number,attribute:"max-attempts"})],kt.prototype,"maxAttempts",void 0);Ue([p({type:Boolean,converter:xr,attribute:"show-feedback"})],kt.prototype,"showFeedback",void 0);Ue([p({type:Boolean,converter:xr,attribute:"allow-review"})],kt.prototype,"allowReview",void 0);Ue([p({type:Boolean,converter:xr,attribute:"show-solution"})],kt.prototype,"showSolution",void 0);Ue([p({type:Boolean,converter:xr,attribute:"allow-comment"})],kt.prototype,"allowComment",void 0);Ue([p({type:Boolean,converter:xr,attribute:"allow-skipping"})],kt.prototype,"allowSkipping",void 0);Ue([p({type:Boolean,converter:xr,attribute:"validate-responses"})],kt.prototype,"validateResponses",void 0);var Ti=class extends C{static{this.styles=[q`
64
64
  :host {
65
65
  display: none;
66
66
  }
67
- `]}render(){return b`<slot></slot>`}process(){let t=new ka,e=[...this.children];t.process(e)}},ka=class{process(t){for(let e of t)e.process()}};function $(n,t){let e={waitUntilFirstUpdate:!1,...t};return(r,i)=>{let{update:o}=r,s=Array.isArray(n)?n:[n];r.update=function(a){s.forEach(l=>{let c=l;if(a.has(c)){let d=a.get(c),h=this[c];d!==h&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[i](d,h)}}),o.call(this,a)}}}var qr={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Et=n=>(...t)=>({_$litDirective$:n,values:t}),ge=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,r){this._$Ct=t,this._$AM=e,this._$Ci=r}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var{I:pp}=K,bl=n=>n,vl=n=>n===null||typeof n!="object"&&typeof n!="function";var wl=n=>n.strings===void 0,yl=()=>document.createComment(""),Cr=(n,t,e)=>{let r=n._$AA.parentNode,i=t===void 0?n._$AB:t._$AA;if(e===void 0){let o=r.insertBefore(yl(),i),s=r.insertBefore(yl(),i);e=new pp(o,s,n,n.options)}else{let o=e._$AB.nextSibling,s=e._$AM,a=s!==n;if(a){let l;e._$AQ?.(n),e._$AM=n,e._$AP!==void 0&&(l=n._$AU)!==s._$AU&&e._$AP(l)}if(o!==i||a){let l=e._$AA;for(;l!==o;){let c=bl(l).nextSibling;bl(r).insertBefore(l,i),l=c}}}return e},be=(n,t,e=n)=>(n._$AI(t,e),n),up={},xl=(n,t=up)=>n._$AH=t,ql=n=>n._$AH,Ro=n=>{n._$AR(),n._$AA.remove()};var wi=(n,t)=>{let e=n._$AN;if(e===void 0)return!1;for(let r of e)r._$AO?.(t,!1),wi(r,t);return!0},Oo=n=>{let t,e;do{if((t=n._$AM)===void 0)break;e=t._$AN,e.delete(n),n=t}while(e?.size===0)},Cl=n=>{for(let t;t=n._$AM;n=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(n))break;e.add(n),gp(t)}};function mp(n){this._$AN!==void 0?(Oo(this),this._$AM=n,Cl(this)):this._$AM=n}function fp(n,t=!1,e=0){let r=this._$AH,i=this._$AN;if(i!==void 0&&i.size!==0)if(t)if(Array.isArray(r))for(let o=e;o<r.length;o++)wi(r[o],!1),Oo(r[o]);else r!=null&&(wi(r,!1),Oo(r));else wi(this,n)}var gp=n=>{n.type==qr.CHILD&&(n._$AP??=fp,n._$AQ??=mp)},ye=class extends ge{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,r){super._$AT(t,e,r),Cl(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(wi(this,t),Oo(this))}setValue(t){if(wl(this._$Ct))this._$Ct._$AI(t,this);else{let e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}};var Ea=class extends ye{constructor(){super(...arguments),this.prevData={}}render(t){return P}update(t,[e]){return this.element!==t.element&&(this.element=t.element),this.host=t.options?.host||this.element,this.apply(e),this.groom(e),this.prevData={...e},P}apply(t){let e=this.#t(t),{prevData:r,element:i}=this;for(let o in e){let s=e[o];s!==r[o]&&(s===!0?i.setAttribute(o,""):s===!1?i.removeAttribute(o):s!=null?i.setAttribute(o,String(s)):i.removeAttribute(o))}}groom(t){let{prevData:e,element:r}=this;if(!e)return;let i=t?this.#t(t):{};for(let o in e)(!i||!(o in i))&&r.removeAttribute(o)}#t(t){return Object.fromEntries(Object.entries(t).filter(([e,r])=>typeof r=="function"?!1:e==="max-choices"&&r===0?!0:!(r===""||r===null||r===void 0)))}},_y=Et(Ea);var Zt=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},rt=class extends C{constructor(){super(...arguments),this.#e=null,this.identifier="",this.adaptive="false",this.timeDependent=null,this._handleDisabledChange=(t,e)=>{this.interactionElements.forEach(r=>r.disabled=e)},this._handleReadonlyChange=(t,e)=>this.interactionElements.forEach(r=>r.readonly=e),this._context={variables:fl},this.#r={...this._context,variables:this._context.variables},this.#i=[],this.interactionElements=[],this.#s=t=>{t.stopImmediatePropagation(),this._context={...this._context,variables:[...this._context.variables,t.detail.variable]},this.#r=this._context,t.stopPropagation()},this.#a=t=>{t.stopImmediatePropagation();let e=t.detail;this.#i.push(e),(Number(this._context.variables.find(i=>i.identifier==="numAttempts")?.value)||0)>0&&e.checkShowFeedback(e.outcomeIdentifier)},this.#c=t=>{t.stopImmediatePropagation(),this.interactionElements.push(t.detail.interactionElement)},this.#h=t=>{t.stopImmediatePropagation();let{responseIdentifier:e,countAttempt:r}=t.detail;this.validate(),this.updateResponseVariable(e,"true"),this.processResponse(r)},this.#l=t=>{t.stopImmediatePropagation();let{outcomeIdentifier:e,value:r}=t.detail;this.updateOutcomeVariable(e,r),t.stopPropagation()},this.#u=t=>{t.stopImmediatePropagation();let{templateIdentifier:e,value:r}=t.detail;this.updateTemplateVariable(e,r??void 0),t.stopPropagation()},this.#d=t=>{t.stopImmediatePropagation();let{responseIdentifier:e,value:r}=t.detail;this.updateCorrectResponse(e,r??void 0),t.stopPropagation()},this.#p=t=>{t.stopImmediatePropagation();let{responseIdentifier:e,response:r,state:i}=t.detail;this.updateResponseVariable(e,r),i!==void 0&&(this._context={...this._context,state:{...this._context.state||{},[e]:i}}),this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context}}))}}#t;#e;get title(){return this.#t}set title(t){this.#t=t,this.removeAttribute("title"),this.setAttribute("data-title",t)}set assessmentItemRefId(t){this._context={...this._context,identifier:t}}get assessmentItemRefId(){return this._context.identifier}get variables(){return this._context.variables.map(t=>({identifier:t.identifier,value:t.value,type:t.type,...t.type==="outcome"&&t.identifier==="SCORE"?{externalScored:t.externalScored}:{}}))}set variables(t){if(!Array.isArray(t)||t.some(e=>!("identifier"in e))){console.warn("variables property should be an array of VariableDeclaration");return}this._context={...this._context,variables:this._context.variables.map(e=>{let r=t.find(i=>i.identifier===e.identifier);return r?{...e,...r,interpolationTable:e.interpolationTable}:e})},this._context.variables.forEach(e=>{if(e.type==="response"){let r=this.interactionElements.find(i=>i.responseIdentifier===e.identifier);r&&(r.response=e.value)}}),this.variables.forEach(e=>{e.type==="outcome"&&this.#i.forEach(r=>r.checkShowFeedback(e.identifier))})}get state(){return this._context.state}set state(t){this._context={...this._context,state:t?{...t}:void 0}}#r;#i;set responses(t){if(t)for(let e of t){this.getResponse(e.responseIdentifier)&&this.updateResponseVariable(e.responseIdentifier,e.response);let i=this.interactionElements.find(o=>o.getAttribute("response-identifier")===e.responseIdentifier);i&&(i.response=e.response)}}render(){return b`<slot></slot>`}connectedCallback(){this.#o(),super.connectedCallback(),this.updateComplete.then(()=>{this.dispatchEvent(new CustomEvent("qti-assessment-item-connected",{bubbles:!0,composed:!0,detail:this})),this.#m()})}disconnectedCallback(){this.#n(),super.disconnectedCallback()}#o(){this.addEventListener("qti-register-variable",this.#s),this.addEventListener("qti-register-feedback",this.#a),this.addEventListener("qti-register-interaction",this.#c),this.addEventListener("end-attempt",this.#h),this.addEventListener("qti-set-outcome-value",this.#l),this.addEventListener("qti-set-template-value",this.#u),this.addEventListener("qti-set-correct-response",this.#d),this.addEventListener("qti-interaction-response",this.#p)}#n(){this.removeEventListener("qti-register-variable",this.#s),this.removeEventListener("qti-register-feedback",this.#a),this.removeEventListener("qti-register-interaction",this.#c),this.removeEventListener("end-attempt",this.#h),this.removeEventListener("qti-set-outcome-value",this.#l),this.removeEventListener("qti-set-template-value",this.#u),this.removeEventListener("qti-set-correct-response",this.#d),this.removeEventListener("qti-interaction-response",this.#p)}#s;#a;#c;#h;#l;#u;#d;#p;async#m(){let t=Array.from(this.querySelectorAll("qti-template-declaration"));t.length>0&&(await Promise.all(t.map(e=>e.updateComplete)),await Promise.resolve()),this.#e=this.querySelector("qti-template-processing"),this.#e&&(this.#e.process(),this.#r={...this._context,variables:this._context.variables})}processResponse(t=!0,e=!0){this.validate(e),t&&this.updateOutcomeVariable("numAttempts",(+this._context.variables.find(o=>o.identifier==="numAttempts")?.value+1).toString()),this.adaptive==="false"&&this.#f();let r=this.querySelector("qti-response-processing"),i=!!(r&&typeof r.process=="function");return i&&r.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this.#b()),this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context,responseProcessed:!0}})),i}resetResponses(){this._context=this.#r}getResponse(t){return this.getVariable(t)}getOutcome(t){return this.getVariable(t)}getVariable(t){return this._context.variables.find(e=>e.identifier===t)||null}afterResponseVariableUpdated(){}updateResponseVariable(t,e){this._context={...this._context,variables:this._context.variables.map(r=>r.identifier!==t?r:{...r,value:e})},this.afterResponseVariableUpdated(),this.dispatchEvent(new CustomEvent("qti-interaction-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,responseIdentifier:t,response:Array.isArray(e)?[...e]:e}})),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this.#b())}updateTemplateVariable(t,e){let r=this._context.variables.find(o=>o.identifier===t&&o.type==="template");if(!r){console.warn(`Can not set qti-template-identifier: ${t}, it is not available`);return}let i=r.cardinality==="single"?Array.isArray(e)?e[0]:e??null:e==null?null:Array.isArray(e)?e:[e];this._context={...this._context,variables:this._context.variables.map(o=>o.identifier!==t?o:{...o,value:i})},this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context}}))}updateCorrectResponse(t,e){let r=this.getResponse(t);if(!r){console.warn(`Can not set correct response for identifier: ${t}, it is not available`);return}let i=r.cardinality==="single"?Array.isArray(e)?e[0]:e??null:e==null?null:Array.isArray(e)?e:[e];this._context={...this._context,variables:this._context.variables.map(o=>o.identifier!==t?o:{...o,correctResponse:i})},this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context}}))}setOutcomeVariable(t,e){this.updateOutcomeVariable(t,e),this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context}}))}updateOutcomeVariable(t,e){let r=this.getOutcome(t);if(!r){console.warn(`Can not set qti-outcome-identifier: ${t}, it is not available`);return}this._context={...this._context,variables:this._context.variables.map(i=>i.identifier!==t?i:{...i,value:r.cardinality==="single"||Array.isArray(e)?e:[e]})},this.#i.forEach(i=>i.checkShowFeedback(t)),this.dispatchEvent(new CustomEvent("qti-outcome-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,outcomeIdentifier:t,value:this._context.variables.find(i=>i.identifier===t)?.value}}))}validate(t=!0){let e=this.interactionElements.every(r=>r.validate());return t&&this.reportValidity(),e}reportValidity(){for(let t of this.interactionElements)t.reportValidity()}#b(){let t=this.validate(!1);return t===!0?"completed":t===!1?"incomplete":"not_attempted"}#f(){this._context={...this._context,variables:this._context.variables.map(t=>{if(t.type!=="outcome")return t;let i=("defaultValue"in t?t.defaultValue:null)??null;return i==null&&(t.baseType==="integer"||t.baseType==="float")&&(i="0"),{...t,value:i}})}}};Zt([p({type:String})],rt.prototype,"identifier",void 0);Zt([p({type:String})],rt.prototype,"adaptive",void 0);Zt([p({type:String})],rt.prototype,"timeDependent",void 0);Zt([p({type:String})],rt.prototype,"title",null);Zt([p({type:Boolean})],rt.prototype,"disabled",void 0);Zt([$("disabled",{waitUntilFirstUpdate:!0})],rt.prototype,"_handleDisabledChange",void 0);Zt([p({type:Boolean})],rt.prototype,"readonly",void 0);Zt([$("readonly",{waitUntilFirstUpdate:!0})],rt.prototype,"_handleReadonlyChange",void 0);Zt([B({context:j})],rt.prototype,"_context",void 0);function kl(n){n.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(e=>{let r=document.createComment(e.textContent);e.replaceChild(r,e.firstChild)})}async function El(n,t,e,r="qti-portable-custom-interaction"){let i=[],o=n.querySelectorAll(r);if(o.length===0)return;let s=null,a=null,l=async()=>{if(s===null)try{s=await e(t,"/modules/module_resolution.js")}catch{s=null}if(a===null)try{a=await e(t,"/modules/fallback_module_resolution.js")}catch{a=null}};for(let c of Array.from(o)){c.setAttribute("data-base-url",t);let d=c.getAttribute("custom-interaction-type-identifier");d&&i.includes(d)&&(d=d+i.length,c.setAttribute("custom-interaction-type-identifier",d),i.push(d)),d&&i.push(d);let h=c.querySelector("qti-interaction-modules");if(h&&h.getAttribute("primary-configuration")){await l();let f=h.getAttribute("primary-configuration");if(f)try{let m=await e(t,`/${f}`),w=Array.from(h.querySelectorAll("qti-interaction-module"));for(let x of w){let u=x.getAttribute("id");if(u&&m.paths&&m.paths[u]){let g=m.paths[u],y=Array.isArray(g)?g[0]:g;if(x.setAttribute("primary-path",y),a&&a.paths&&a.paths[u]){let v=a.paths[u];Array.isArray(v)?x.setAttribute("fallback-path",v[0]):x.setAttribute("fallback-path",v)}}}if(m.paths){for(let x in m.paths)if(!h.querySelector(`qti-interaction-module[id="${x}"]`)){let g=n.createElement("qti-interaction-module");g.setAttribute("id",x);let y=Array.isArray(m.paths[x])?m.paths[x][0]:m.paths[x];if(g.setAttribute("primary-path",y),a&&a.paths&&a.paths[x]){let v=a.paths[x];Array.isArray(v)?g.setAttribute("fallback-path",v[0]):g.setAttribute("fallback-path",v)}h.appendChild(g)}}m.urlArgs&&h.setAttribute("url-args",m.urlArgs)}catch(m){console.warn(`Failed to load primary configuration: ${f}`,m)}}else if(await l(),s){c.querySelector("qti-interaction-modules")===null?(h=n.createElement("qti-interaction-modules"),c.appendChild(h)):h=c.querySelector("qti-interaction-modules");for(let f in s.paths){let m=s.paths[f],w="";a&&a.paths&&a.paths[f]&&(w=a.paths[f]);let x=Array.isArray(m)?m:[m],u=Array.isArray(w)?w:[w],g=x.map((y,v)=>{let I=u.length>v?u[v]:"";return{primaryPath:y,fallbackPath:I}});for(let y of u)g.some(v=>v.fallbackPath===y)||g.push({primaryPath:x.length>0?x[0]:y,fallbackPath:y});for(let y of g){let v=n.createElement("qti-interaction-module");y.fallbackPath&&v.setAttribute("fallback-path",y.fallbackPath),v.setAttribute("id",f),v.setAttribute("primary-path",y.primaryPath),h&&h.appendChild(v)}}}}}function Sl(n,t,e){Array.from(n.getElementsByTagName("*")).filter(o=>o.localName===t||o.localName?.toLowerCase()===t.toLowerCase()).forEach(o=>{let s=`${t}-${e}`,a=Il(o,s);o.replaceWith(a)})}function Al(n,t){n.querySelectorAll("*").forEach(e=>{let r=e.classList;r&&r.forEach(i=>{if(i.startsWith(`${t}:`)){let o=i.slice(`${t}:`.length),s=`${e.nodeName}-${o}`,a=Il(e,s);e.replaceWith(a)}})})}function Il(n,t){let e=n.ownerDocument.createElement(t);for(let r of n.attributes)e.setAttribute(r.name,r.value);for(;n.firstChild;)e.appendChild(n.firstChild);return e}function _l(n,t){let e=["hook","module"],r=t.substring(0,t.lastIndexOf("/"));for(let i of e)n.querySelectorAll("["+i+"]").forEach(s=>{let a=s.getAttribute(i);!a.startsWith("data:")&&!a.startsWith("http")&&(s.setAttribute("base-url",t),s.setAttribute("module",r+"/"+encodeURI(a+(a.endsWith(".js")?"":".js"))))})}var Sa=class n{#t;constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("SeededRandom seed must be a Uint8Array.");if(t.length>32)throw new RangeError("SeededRandom seed must be 32 bytes or less.");let e=new Uint8Array(32);e.set(t,32-t.length),this.#t=yp(e)}static fromSeed(t){if(t.length!==32)throw new RangeError("SeededRandom.fromSeed requires a 32-byte seed.");return new n(t)}static fromFixed(t){if(typeof t!="number")throw new TypeError("SeededRandom.fromFixed requires a number.");if(!Number.isInteger(t)||t<0||t>255)throw new RangeError("SeededRandom.fromFixed requires an integer from 0 to 255.");let e=new Uint8Array(32);return e[31]=t,new n(e)}static fromSeedKey(t){let e=new n(new Uint8Array);return e.#t=bp(`${t}`),e}random(){this.#t|=0,this.#t=this.#t+1831565813|0;let t=Math.imul(this.#t^this.#t>>>15,1|this.#t);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}};function Po(n){return Sa.fromSeedKey(n)}function bp(n){let t=1779033703^n.length;for(let e=0;e<n.length;e++)t=Math.imul(t^n.charCodeAt(e),3432918353),t=t<<13|t>>>19;return Tl(t)}function yp(n){let t=1779033703^n.length;for(let e=0;e<n.length;e++)t=Math.imul(t^n[e],3432918353),t=t<<13|t>>>19;return Tl(t)}function Tl(n){let t=Math.imul(n^n>>>16,2246822507);return t=Math.imul(t^t>>>13,3266489909),(t^t>>>16)>>>0}var vp=n=>typeof n=="function"?n():n.random();function Mo(n,t){let e=n.filter(i=>!i.fixed);for(let i=e.length-1;i>0;i--){let o=Math.floor(vp(t)*(i+1));[e[i],e[o]]=[e[o],e[i]]}let r=0;return n.map(i=>i.fixed?i:e[r++])}function wp(n){switch(n){case"qti-choice-interaction":case"qti-order-interaction":return"qti-simple-choice";case"qti-inline-choice-interaction":return"qti-inline-choice";case"qti-match-interaction":return["qti-simple-match-set:first-of-type qti-simple-associable-choice","qti-simple-match-set:last-of-type > qti-simple-associable-choice"];case"qti-gap-match-interaction":return"qti-gap-text";case"qti-associate-interaction":return"qti-simple-associable-choice";default:return null}}function Aa(n,t){let e=n.querySelectorAll('[shuffle="true"]'),r=Array.from(e).filter(a=>a.tagName?.toLowerCase().endsWith("-interaction")),i=t!=null&&`${t}`.length>0,o=n.querySelector?.("qti-assessment-item")?.getAttribute("identifier")??"",s=0;for(let a of r){let l=a.getAttribute("response-identifier")??`${s}`;s++;let c=wp(a.tagName.toLowerCase()),d=Array.isArray(c)?c:[c],h=!1,f=0;for(let m of d){if(!m)continue;let w=i?Po(`${t}:${o}:${l}:${f}`):Math.random;f++;let x=Array.from(a.querySelectorAll(m)).filter(v=>v.parentElement!==null);if(x.filter(v=>v.getAttribute("fixed")!=="true").length<=1){console.warn("Shuffling is not possible with fewer than 2 non-fixed elements.");continue}let u=x[0].parentElement;if(!u||x.some(v=>v.parentElement!==u)){console.warn("Shuffling is not possible when choices do not share the same parent element.");continue}let g=x[x.length-1].nextSibling,y=Mo(x.map(v=>({element:v,fixed:v.getAttribute("fixed")==="true"})),w);for(let v of x)v.remove();for(let{element:v}of y)u.insertBefore(v,g);h=!0}h&&a.removeAttribute("shuffle")}}function Rl(n){n.querySelectorAll("qti-stylesheet").forEach(t=>t.remove())}var Ol=!1;function Do(n,t){Ol||(Ol=!0,console.warn(`[${n}] No QTI_CONTEXT.seed provided; using "${t}" as deterministic fallback seed.`))}function kr(n,t){return fetch(n,{signal:t}).then(e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.text()}).then(e=>new DOMParser().parseFromString(e,"text/xml")).catch(e=>{throw e.name==="AbortError"?e:new Error(`Failed to load XML: ${e.message}`)})}function Er(n){return new DOMParser().parseFromString(n,"text/xml")}function Pl(n,t,e){if(n.nodeType===Node.ELEMENT_NODE){let r=n,i;!r.namespaceURI||r.namespaceURI.startsWith("http://www.imsglobal.org/xsd/qti/")||r.namespaceURI.startsWith("http://www.imsglobal.org/xsd/imsqti")?i=e?t.createElement(r.localName,{customElementRegistry:e}):t.createElement(r.localName):i=t.createElementNS(r.namespaceURI,r.tagName);for(let o=0;o<r.attributes.length;o++){let s=r.attributes[o];i.setAttribute(s.localName,s.value)}for(let o=0;o<r.childNodes.length;o++)i.appendChild(Pl(r.childNodes[o],t,e));return i}return n.cloneNode(!1)}function Sr(n,t){let e=document.createDocumentFragment();for(let r=0;r<n.childNodes.length;r++)e.appendChild(Pl(n.childNodes[r],document,t));return e}function Ar(n,t){t.endsWith("/")||(t+="/"),n.querySelectorAll("*").forEach(r=>{for(let i of["src","href","srcset","poster"]){let o=r.getAttribute(i)?.trim();if(o&&!/^(data:|https?:|blob:)/.test(o)){let s=t+encodeURI(o);r.setAttribute(i,s)}}})}var jt=()=>{let n,t="",e={load(r,i){return t=r,kr(r,i).then(o=>(n=o,e))},parse(r){return n=Er(r),t="",e},path:r=>(Ar(n,r),t=null,e),fn(r){return r(n),e},pciHooks(r){return _l(n,r),e},async configurePci(r,i,o="qti-portable-custom-interaction"){return await El(n,r,i,o),e},shuffleInteractions(r){let i=typeof r=="string"?r.trim():r;if(i==null||i===""){let o=t||"default-item-seed";return Do("qtiTransformItem",o),Aa(n,o),e}return Aa(n,i),e},extendElementName:(r,i)=>(Sl(n,r,i),e),extendElementsWithClass:(r="extend")=>(Al(n,r),e),customInteraction(r,i){let o=n.querySelector("qti-custom-interaction"),s=o.querySelector("object");return o.setAttribute("data-base-ref",r),o.setAttribute("data-base-item",r+i),o.setAttribute("data",s.getAttribute("data")),o.setAttribute("width",s.getAttribute("width")),o.setAttribute("height",s.getAttribute("height")),o.removeChild(s),e},convertCDATAtoComment(){return kl(n),e},stripStyleSheets(){return Rl(n),e},html(){return t!==null&&Ar(n,t.substring(0,t.lastIndexOf("/"))),new XMLSerializer().serializeToString(Sr(n))},xml(){return new XMLSerializer().serializeToString(n)},htmlDoc(r){return t!==null&&Ar(n,t.substring(0,t.lastIndexOf("/"))),Sr(n,r)},xmlDoc(){return n}};return e};var Ml=()=>{let n,t={async load(e,r){return n=await kr(e,r),t},parse(e){n=Er(e)},assessmentTest(){let e=n.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:e.getAttribute("href"),identifier:e.getAttribute("identifier")}}};return t};function Dl(n){let t=[];return n.querySelectorAll("qti-assessment-item-ref").forEach(e=>{let r=e.getAttribute("identifier"),i=e.getAttribute("href"),o=e.getAttribute("category");t.push({identifier:r,href:i,category:o})}),t}var No=(n,...t)=>t.includes(n.localName)||t.includes(n.localName?.toLowerCase?.()),Nl=n=>No(n,"qti-assessment-item-ref","assessmentitemref"),qi=n=>No(n,"qti-assessment-section","assessmentsection"),xi=(n,...t)=>t.some(e=>{let r=(n.getAttribute(e)??"").trim().toLowerCase();return r==="true"||r==="1"}),xp=(n,...t)=>t.some(e=>{let r=(n.getAttribute(e)??"").trim().toLowerCase();return r==="false"||r==="0"}),Ia=n=>No(n,"qti-ordering","ordering"),qp=n=>No(n,"qti-selection","selection"),Cp=n=>Array.from(n.children).filter(t=>Ia(t)&&xi(t,"shuffle")),kp=(n,t)=>Po(`${n}:${t}`);function Ep(n){let t=[],e=[],r=i=>{for(let o of Array.from(i.children))Nl(o)?t.push(o):qi(o)?r(o):!Ia(o)&&!qp(o)&&e.push(o.localName)};return r(n),{itemRefs:t,dropped:e}}function Sp(n,t){if(t.length===0)return;let e=n.getAttribute("identifier")??"(no identifier)";console.warn(`[qtiTransformTest] Subsection "${e}" is consumed by section ordering; discarding its ${[...new Set(t)].join(", ")}.`)}function $l(n,t){for(let l of Array.from(n.children))qi(l)&&$l(l,t);let e=Cp(n);if(e.length===0)return;let r=[],i=[];for(let l of Array.from(n.children))if(Nl(l))r.push({nodes:[l],fixed:xi(l,"fixed")}),i.push(l);else if(qi(l)){let{itemRefs:c,dropped:d}=Ep(l);if(Sp(l,d),xp(l,"keep-together","keeptogether"))for(let h of c)r.push({nodes:[h],fixed:xi(h,"fixed")});else c.length>0&&r.push({nodes:c,fixed:xi(l,"fixed")});i.push(l)}let o=i.length>0?i[i.length-1].nextSibling:null,s=n.getAttribute("identifier")??"",a=Mo(r,kp(t,s));for(let l of i)l.remove();for(let l of a)for(let c of l.nodes)n.insertBefore(c,o);for(let l of e)l.remove()}function Ll(n){return Array.from(n.getElementsByTagName("*")).some(t=>Ia(t)&&xi(t,"shuffle"))}function _a(n,t){let e=Array.from(n.getElementsByTagName("*")).filter(r=>qi(r));for(let r of e){if(!r.parentNode)continue;let i=r.parentElement;i&&qi(i)||$l(r,t)}}var Ir=()=>{let n,t="",e={async load(r,i){return n=await kr(r,i),t=r,e.path(r.substring(0,r.lastIndexOf("/"))),e},parse(r){return n=Er(r),t="",e},path:r=>(Ar(n,r),e),fn(r){return r(n),e},shuffleOrdering(r){if(!Ll(n))return e;let i=typeof r=="string"?r.trim():r;if(i==null||i===""){let o=t||"default-test-seed";return Do("qtiTransformTest",o),_a(n,o),e}return _a(n,i),e},items(){return Dl(n)},html(){return new XMLSerializer().serializeToString(Sr(n))},xml(){return new XMLSerializer().serializeToString(n)},htmlDoc(r){return Sr(n,r)},xmlDoc(){return n}};return e};var Vl=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ta=class n extends Event{static{this.eventName="qti-assessment-stimulus-ref-connected"}constructor(t,e){super(n.eventName,{bubbles:!0,composed:!0,cancelable:!0}),this.element=t,this.item=e}},_r=class extends C{constructor(){super(...arguments),this.identifier="",this.href=""}async connectedCallback(){super.connectedCallback(),await this.updateComplete;let t=this.closest("qti-assessment-item"),e=new Ta(this,t);this.dispatchEvent(e);let r=t?.querySelector(`[data-stimulus-idref="${this.identifier}"]`);!e.defaultPrevented&&r&&await this.updateStimulusRef(r)}async updateStimulusRef(t){let e=await jt().load(this.href).then(r=>r.htmlDoc());if(e){let r=e.querySelectorAll("qti-stimulus-body, qti-stylesheet");t.innerHTML="",t.append(...r)}}};Vl([p({type:String})],_r.prototype,"identifier",void 0);Vl([p({type:String})],_r.prototype,"href",void 0);var $o=class extends C{};var Ap=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ci=class extends C{render(){return b`<slot @slotchange=${this.#t}></slot>`}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>this.#t())}updated(t){t.has("context")&&this.#t()}#t(){let t=new Map,e=(this.context?.variables??[]).filter(i=>i.type==="template");for(let i of e){let o=i;o.mathVariable!==!0||o.value===null||o.value===void 0||t.set(o.identifier,this.#e(o.value))}if(t.size===0)return;let r=Array.from(this.querySelectorAll("*")).filter(i=>i.localName.toLowerCase()==="mi"||i.localName.toLowerCase()==="mn");for(let i of r){let o=i.getAttribute("data-qti-math-variable-source")??i.textContent?.trim()??"",s=t.get(o);if(!s)continue;if(i.localName.toLowerCase()==="mn"){i.textContent=s,i.setAttribute("data-qti-math-variable-source",o);continue}let a=document.createElement("mn");a.textContent=s,a.setAttribute("data-qti-math-variable-source",o),i.replaceWith(a)}}#e(t){return Array.isArray(t)?t.join(" "):t?.toString()??""}};Ap([T({context:j,subscribe:!0}),_()],Ci.prototype,"context",void 0);var zl=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Tr=class extends C{constructor(){super(...arguments),this.identifier="",this.cardinality="record"}static{this.styles=[q`
67
+ `]}render(){return b`<slot></slot>`}process(){let t=new ka,e=[...this.children];t.process(e)}},ka=class{process(t){for(let e of t)e.process()}};function $(o,t){let e={waitUntilFirstUpdate:!1,...t};return(r,n)=>{let{update:i}=r,s=Array.isArray(o)?o:[o];r.update=function(a){s.forEach(l=>{let c=l;if(a.has(c)){let d=a.get(c),h=this[c];d!==h&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[n](d,h)}}),i.call(this,a)}}}var qr={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Et=o=>(...t)=>({_$litDirective$:o,values:t}),ge=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,r){this._$Ct=t,this._$AM=e,this._$Ci=r}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var{I:pp}=K,bl=o=>o,vl=o=>o===null||typeof o!="object"&&typeof o!="function";var wl=o=>o.strings===void 0,yl=()=>document.createComment(""),Cr=(o,t,e)=>{let r=o._$AA.parentNode,n=t===void 0?o._$AB:t._$AA;if(e===void 0){let i=r.insertBefore(yl(),n),s=r.insertBefore(yl(),n);e=new pp(i,s,o,o.options)}else{let i=e._$AB.nextSibling,s=e._$AM,a=s!==o;if(a){let l;e._$AQ?.(o),e._$AM=o,e._$AP!==void 0&&(l=o._$AU)!==s._$AU&&e._$AP(l)}if(i!==n||a){let l=e._$AA;for(;l!==i;){let c=bl(l).nextSibling;bl(r).insertBefore(l,n),l=c}}}return e},be=(o,t,e=o)=>(o._$AI(t,e),o),up={},xl=(o,t=up)=>o._$AH=t,ql=o=>o._$AH,Ri=o=>{o._$AR(),o._$AA.remove()};var xn=(o,t)=>{let e=o._$AN;if(e===void 0)return!1;for(let r of e)r._$AO?.(t,!1),xn(r,t);return!0},Oi=o=>{let t,e;do{if((t=o._$AM)===void 0)break;e=t._$AN,e.delete(o),o=t}while(e?.size===0)},Cl=o=>{for(let t;t=o._$AM;o=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(o))break;e.add(o),gp(t)}};function mp(o){this._$AN!==void 0?(Oi(this),this._$AM=o,Cl(this)):this._$AM=o}function fp(o,t=!1,e=0){let r=this._$AH,n=this._$AN;if(n!==void 0&&n.size!==0)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)xn(r[i],!1),Oi(r[i]);else r!=null&&(xn(r,!1),Oi(r));else xn(this,o)}var gp=o=>{o.type==qr.CHILD&&(o._$AP??=fp,o._$AQ??=mp)},ye=class extends ge{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,r){super._$AT(t,e,r),Cl(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(xn(this,t),Oi(this))}setValue(t){if(wl(this._$Ct))this._$Ct._$AI(t,this);else{let e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}};var Ea=class extends ye{constructor(){super(...arguments),this.prevData={}}render(t){return P}update(t,[e]){return this.element!==t.element&&(this.element=t.element),this.host=t.options?.host||this.element,this.apply(e),this.groom(e),this.prevData={...e},P}apply(t){let e=this.#t(t),{prevData:r,element:n}=this;for(let i in e){let s=e[i];s!==r[i]&&(s===!0?n.setAttribute(i,""):s===!1?n.removeAttribute(i):s!=null?n.setAttribute(i,String(s)):n.removeAttribute(i))}}groom(t){let{prevData:e,element:r}=this;if(!e)return;let n=t?this.#t(t):{};for(let i in e)(!n||!(i in n))&&r.removeAttribute(i)}#t(t){return Object.fromEntries(Object.entries(t).filter(([e,r])=>typeof r=="function"?!1:e==="max-choices"&&r===0?!0:!(r===""||r===null||r===void 0)))}},Iy=Et(Ea);var Zt=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},rt=class extends C{constructor(){super(...arguments),this.#e=null,this.identifier="",this.adaptive="false",this.timeDependent=null,this._handleDisabledChange=(t,e)=>{this.interactionElements.forEach(r=>r.disabled=e)},this._handleReadonlyChange=(t,e)=>this.interactionElements.forEach(r=>r.readonly=e),this._context={variables:fl},this.#r={...this._context,variables:this._context.variables},this.#n=[],this.interactionElements=[],this.#s=t=>{t.stopImmediatePropagation(),this._context={...this._context,variables:[...this._context.variables,t.detail.variable]},this.#r=this._context,t.stopPropagation()},this.#a=t=>{t.stopImmediatePropagation();let e=t.detail;this.#n.push(e),(Number(this._context.variables.find(n=>n.identifier==="numAttempts")?.value)||0)>0&&e.checkShowFeedback(e.outcomeIdentifier)},this.#c=t=>{t.stopImmediatePropagation(),this.interactionElements.push(t.detail.interactionElement)},this.#h=t=>{t.stopImmediatePropagation();let{responseIdentifier:e,countAttempt:r}=t.detail;this.validate(),this.updateResponseVariable(e,"true"),this.processResponse(r)},this.#l=t=>{t.stopImmediatePropagation();let{outcomeIdentifier:e,value:r}=t.detail;this.updateOutcomeVariable(e,r),t.stopPropagation()},this.#u=t=>{t.stopImmediatePropagation();let{templateIdentifier:e,value:r}=t.detail;this.updateTemplateVariable(e,r??void 0),t.stopPropagation()},this.#d=t=>{t.stopImmediatePropagation();let{responseIdentifier:e,value:r}=t.detail;this.updateCorrectResponse(e,r??void 0),t.stopPropagation()},this.#p=t=>{t.stopImmediatePropagation();let{responseIdentifier:e,response:r,state:n}=t.detail;this.updateResponseVariable(e,r),n!==void 0&&(this._context={...this._context,state:{...this._context.state||{},[e]:n}}),this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context}}))}}#t;#e;get title(){return this.#t}set title(t){this.#t=t,this.removeAttribute("title"),this.setAttribute("data-title",t)}set assessmentItemRefId(t){this._context={...this._context,identifier:t}}get assessmentItemRefId(){return this._context.identifier}get variables(){return this._context.variables.map(t=>({identifier:t.identifier,value:t.value,type:t.type,...t.type==="outcome"&&t.identifier==="SCORE"?{externalScored:t.externalScored}:{}}))}set variables(t){if(!Array.isArray(t)||t.some(e=>!("identifier"in e))){console.warn("variables property should be an array of VariableDeclaration");return}this._context={...this._context,variables:this._context.variables.map(e=>{let r=t.find(n=>n.identifier===e.identifier);return r?{...e,...r,interpolationTable:e.interpolationTable}:e})},this._context.variables.forEach(e=>{if(e.type==="response"){let r=this.interactionElements.find(n=>n.responseIdentifier===e.identifier);r&&(r.response=e.value)}}),this.variables.forEach(e=>{e.type==="outcome"&&this.#n.forEach(r=>r.checkShowFeedback(e.identifier))})}get state(){return this._context.state}set state(t){this._context={...this._context,state:t?{...t}:void 0}}#r;#n;set responses(t){if(t)for(let e of t){this.getResponse(e.responseIdentifier)&&this.updateResponseVariable(e.responseIdentifier,e.response);let n=this.interactionElements.find(i=>i.getAttribute("response-identifier")===e.responseIdentifier);n&&(n.response=e.response)}}render(){return b`<slot></slot>`}connectedCallback(){this.#i(),super.connectedCallback(),this.updateComplete.then(()=>{this.dispatchEvent(new CustomEvent("qti-assessment-item-connected",{bubbles:!0,composed:!0,detail:this})),this.#m()})}disconnectedCallback(){this.#o(),super.disconnectedCallback()}#i(){this.addEventListener("qti-register-variable",this.#s),this.addEventListener("qti-register-feedback",this.#a),this.addEventListener("qti-register-interaction",this.#c),this.addEventListener("end-attempt",this.#h),this.addEventListener("qti-set-outcome-value",this.#l),this.addEventListener("qti-set-template-value",this.#u),this.addEventListener("qti-set-correct-response",this.#d),this.addEventListener("qti-interaction-response",this.#p)}#o(){this.removeEventListener("qti-register-variable",this.#s),this.removeEventListener("qti-register-feedback",this.#a),this.removeEventListener("qti-register-interaction",this.#c),this.removeEventListener("end-attempt",this.#h),this.removeEventListener("qti-set-outcome-value",this.#l),this.removeEventListener("qti-set-template-value",this.#u),this.removeEventListener("qti-set-correct-response",this.#d),this.removeEventListener("qti-interaction-response",this.#p)}#s;#a;#c;#h;#l;#u;#d;#p;async#m(){let t=Array.from(this.querySelectorAll("qti-template-declaration"));t.length>0&&(await Promise.all(t.map(e=>e.updateComplete)),await Promise.resolve()),this.#e=this.querySelector("qti-template-processing"),this.#e&&(this.#e.process(),this.#r={...this._context,variables:this._context.variables})}processResponse(t=!0,e=!0){this.validate(e),t&&this.updateOutcomeVariable("numAttempts",(+this._context.variables.find(i=>i.identifier==="numAttempts")?.value+1).toString()),this.adaptive==="false"&&this.#f();let r=this.querySelector("qti-response-processing"),n=!!(r&&typeof r.process=="function");return n&&r.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this.#b()),this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context,responseProcessed:!0}})),n}resetResponses(){this._context=this.#r}getResponse(t){return this.getVariable(t)}getOutcome(t){return this.getVariable(t)}getVariable(t){return this._context.variables.find(e=>e.identifier===t)||null}afterResponseVariableUpdated(){}updateResponseVariable(t,e){this._context={...this._context,variables:this._context.variables.map(r=>r.identifier!==t?r:{...r,value:e})},this.afterResponseVariableUpdated(),this.dispatchEvent(new CustomEvent("qti-interaction-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,responseIdentifier:t,response:Array.isArray(e)?[...e]:e}})),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this.#b())}updateTemplateVariable(t,e){let r=this._context.variables.find(i=>i.identifier===t&&i.type==="template");if(!r){console.warn(`Can not set qti-template-identifier: ${t}, it is not available`);return}let n=r.cardinality==="single"?Array.isArray(e)?e[0]:e??null:e==null?null:Array.isArray(e)?e:[e];this._context={...this._context,variables:this._context.variables.map(i=>i.identifier!==t?i:{...i,value:n})},this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context}}))}updateCorrectResponse(t,e){let r=this.getResponse(t);if(!r){console.warn(`Can not set correct response for identifier: ${t}, it is not available`);return}let n=r.cardinality==="single"?Array.isArray(e)?e[0]:e??null:e==null?null:Array.isArray(e)?e:[e];this._context={...this._context,variables:this._context.variables.map(i=>i.identifier!==t?i:{...i,correctResponse:n})},this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context}}))}setOutcomeVariable(t,e){this.updateOutcomeVariable(t,e),this.dispatchEvent(new CustomEvent("qti-item-context-updated",{bubbles:!0,composed:!0,detail:{itemContext:this._context}}))}updateOutcomeVariable(t,e){let r=this.getOutcome(t);if(!r){console.warn(`Can not set qti-outcome-identifier: ${t}, it is not available`);return}this._context={...this._context,variables:this._context.variables.map(n=>n.identifier!==t?n:{...n,value:r.cardinality==="single"||Array.isArray(e)?e:[e]})},this.#n.forEach(n=>n.checkShowFeedback(t)),this.dispatchEvent(new CustomEvent("qti-outcome-changed",{bubbles:!0,composed:!0,detail:{item:this.identifier,outcomeIdentifier:t,value:this._context.variables.find(n=>n.identifier===t)?.value}}))}validate(t=!0){let e=this.interactionElements.every(r=>r.validate());return t&&this.reportValidity(),e}reportValidity(){for(let t of this.interactionElements)t.reportValidity()}#b(){let t=this.validate(!1);return t===!0?"completed":t===!1?"incomplete":"not_attempted"}#f(){this._context={...this._context,variables:this._context.variables.map(t=>{if(t.type!=="outcome")return t;let n=("defaultValue"in t?t.defaultValue:null)??null;return n==null&&(t.baseType==="integer"||t.baseType==="float")&&(n="0"),{...t,value:n}})}}};Zt([p({type:String})],rt.prototype,"identifier",void 0);Zt([p({type:String})],rt.prototype,"adaptive",void 0);Zt([p({type:String})],rt.prototype,"timeDependent",void 0);Zt([p({type:String})],rt.prototype,"title",null);Zt([p({type:Boolean})],rt.prototype,"disabled",void 0);Zt([$("disabled",{waitUntilFirstUpdate:!0})],rt.prototype,"_handleDisabledChange",void 0);Zt([p({type:Boolean})],rt.prototype,"readonly",void 0);Zt([$("readonly",{waitUntilFirstUpdate:!0})],rt.prototype,"_handleReadonlyChange",void 0);Zt([B({context:j})],rt.prototype,"_context",void 0);function kl(o){o.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(e=>{let r=document.createComment(e.textContent);e.replaceChild(r,e.firstChild)})}async function El(o,t,e,r="qti-portable-custom-interaction"){let n=[],i=o.querySelectorAll(r);if(i.length===0)return;let s=null,a=null,l=async()=>{if(s===null)try{s=await e(t,"/modules/module_resolution.js")}catch{s=null}if(a===null)try{a=await e(t,"/modules/fallback_module_resolution.js")}catch{a=null}};for(let c of Array.from(i)){c.setAttribute("data-base-url",t);let d=c.getAttribute("custom-interaction-type-identifier");d&&n.includes(d)&&(d=d+n.length,c.setAttribute("custom-interaction-type-identifier",d),n.push(d)),d&&n.push(d);let h=c.querySelector("qti-interaction-modules");if(h&&h.getAttribute("primary-configuration")){await l();let f=h.getAttribute("primary-configuration");if(f)try{let m=await e(t,`/${f}`),w=Array.from(h.querySelectorAll("qti-interaction-module"));for(let x of w){let u=x.getAttribute("id");if(u&&m.paths&&m.paths[u]){let g=m.paths[u],y=Array.isArray(g)?g[0]:g;if(x.setAttribute("primary-path",y),a&&a.paths&&a.paths[u]){let v=a.paths[u];Array.isArray(v)?x.setAttribute("fallback-path",v[0]):x.setAttribute("fallback-path",v)}}}if(m.paths){for(let x in m.paths)if(!h.querySelector(`qti-interaction-module[id="${x}"]`)){let g=o.createElement("qti-interaction-module");g.setAttribute("id",x);let y=Array.isArray(m.paths[x])?m.paths[x][0]:m.paths[x];if(g.setAttribute("primary-path",y),a&&a.paths&&a.paths[x]){let v=a.paths[x];Array.isArray(v)?g.setAttribute("fallback-path",v[0]):g.setAttribute("fallback-path",v)}h.appendChild(g)}}m.urlArgs&&h.setAttribute("url-args",m.urlArgs)}catch(m){console.warn(`Failed to load primary configuration: ${f}`,m)}}else if(await l(),s){c.querySelector("qti-interaction-modules")===null?(h=o.createElement("qti-interaction-modules"),c.appendChild(h)):h=c.querySelector("qti-interaction-modules");for(let f in s.paths){let m=s.paths[f],w="";a&&a.paths&&a.paths[f]&&(w=a.paths[f]);let x=Array.isArray(m)?m:[m],u=Array.isArray(w)?w:[w],g=x.map((y,v)=>{let I=u.length>v?u[v]:"";return{primaryPath:y,fallbackPath:I}});for(let y of u)g.some(v=>v.fallbackPath===y)||g.push({primaryPath:x.length>0?x[0]:y,fallbackPath:y});for(let y of g){let v=o.createElement("qti-interaction-module");y.fallbackPath&&v.setAttribute("fallback-path",y.fallbackPath),v.setAttribute("id",f),v.setAttribute("primary-path",y.primaryPath),h&&h.appendChild(v)}}}}}function Sl(o,t,e){Array.from(o.getElementsByTagName("*")).filter(i=>i.localName===t||i.localName?.toLowerCase()===t.toLowerCase()).forEach(i=>{let s=`${t}-${e}`,a=Il(i,s);i.replaceWith(a)})}function Al(o,t){o.querySelectorAll("*").forEach(e=>{let r=e.classList;r&&r.forEach(n=>{if(n.startsWith(`${t}:`)){let i=n.slice(`${t}:`.length),s=`${e.nodeName}-${i}`,a=Il(e,s);e.replaceWith(a)}})})}function Il(o,t){let e=o.ownerDocument.createElement(t);for(let r of o.attributes)e.setAttribute(r.name,r.value);for(;o.firstChild;)e.appendChild(o.firstChild);return e}function _l(o,t){let e=["hook","module"],r=t.substring(0,t.lastIndexOf("/"));for(let n of e)o.querySelectorAll("["+n+"]").forEach(s=>{let a=s.getAttribute(n);!a.startsWith("data:")&&!a.startsWith("http")&&(s.setAttribute("base-url",t),s.setAttribute("module",r+"/"+encodeURI(a+(a.endsWith(".js")?"":".js"))))})}var Sa=class o{#t;constructor(t){if(!(t instanceof Uint8Array))throw new TypeError("SeededRandom seed must be a Uint8Array.");if(t.length>32)throw new RangeError("SeededRandom seed must be 32 bytes or less.");let e=new Uint8Array(32);e.set(t,32-t.length),this.#t=yp(e)}static fromSeed(t){if(t.length!==32)throw new RangeError("SeededRandom.fromSeed requires a 32-byte seed.");return new o(t)}static fromFixed(t){if(typeof t!="number")throw new TypeError("SeededRandom.fromFixed requires a number.");if(!Number.isInteger(t)||t<0||t>255)throw new RangeError("SeededRandom.fromFixed requires an integer from 0 to 255.");let e=new Uint8Array(32);return e[31]=t,new o(e)}static fromSeedKey(t){let e=new o(new Uint8Array);return e.#t=bp(`${t}`),e}random(){this.#t|=0,this.#t=this.#t+1831565813|0;let t=Math.imul(this.#t^this.#t>>>15,1|this.#t);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}};function Pi(o){return Sa.fromSeedKey(o)}function bp(o){let t=1779033703^o.length;for(let e=0;e<o.length;e++)t=Math.imul(t^o.charCodeAt(e),3432918353),t=t<<13|t>>>19;return Tl(t)}function yp(o){let t=1779033703^o.length;for(let e=0;e<o.length;e++)t=Math.imul(t^o[e],3432918353),t=t<<13|t>>>19;return Tl(t)}function Tl(o){let t=Math.imul(o^o>>>16,2246822507);return t=Math.imul(t^t>>>13,3266489909),(t^t>>>16)>>>0}var vp=o=>typeof o=="function"?o():o.random();function Mi(o,t){let e=o.filter(n=>!n.fixed);for(let n=e.length-1;n>0;n--){let i=Math.floor(vp(t)*(n+1));[e[n],e[i]]=[e[i],e[n]]}let r=0;return o.map(n=>n.fixed?n:e[r++])}function wp(o){switch(o){case"qti-choice-interaction":case"qti-order-interaction":return"qti-simple-choice";case"qti-inline-choice-interaction":return"qti-inline-choice";case"qti-match-interaction":return["qti-simple-match-set:first-of-type qti-simple-associable-choice","qti-simple-match-set:last-of-type > qti-simple-associable-choice"];case"qti-gap-match-interaction":return"qti-gap-text";case"qti-associate-interaction":return"qti-simple-associable-choice";default:return null}}function Aa(o,t){let e=o.querySelectorAll('[shuffle="true"]'),r=Array.from(e).filter(a=>a.tagName?.toLowerCase().endsWith("-interaction")),n=t!=null&&`${t}`.length>0,i=o.querySelector?.("qti-assessment-item")?.getAttribute("identifier")??"",s=0;for(let a of r){let l=a.getAttribute("response-identifier")??`${s}`;s++;let c=wp(a.tagName.toLowerCase()),d=Array.isArray(c)?c:[c],h=!1,f=0;for(let m of d){if(!m)continue;let w=n?Pi(`${t}:${i}:${l}:${f}`):Math.random;f++;let x=Array.from(a.querySelectorAll(m)).filter(v=>v.parentElement!==null);if(x.filter(v=>v.getAttribute("fixed")!=="true").length<=1){console.warn("Shuffling is not possible with fewer than 2 non-fixed elements.");continue}let u=x[0].parentElement;if(!u||x.some(v=>v.parentElement!==u)){console.warn("Shuffling is not possible when choices do not share the same parent element.");continue}let g=x[x.length-1].nextSibling,y=Mi(x.map(v=>({element:v,fixed:v.getAttribute("fixed")==="true"})),w);for(let v of x)v.remove();for(let{element:v}of y)u.insertBefore(v,g);h=!0}h&&a.removeAttribute("shuffle")}}function Rl(o){o.querySelectorAll("qti-stylesheet").forEach(t=>t.remove())}var Ol=!1;function Di(o,t){Ol||(Ol=!0,console.warn(`[${o}] No QTI_CONTEXT.seed provided; using "${t}" as deterministic fallback seed.`))}function kr(o,t){return fetch(o,{signal:t}).then(e=>{if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return e.text()}).then(e=>new DOMParser().parseFromString(e,"text/xml")).catch(e=>{throw e.name==="AbortError"?e:new Error(`Failed to load XML: ${e.message}`)})}function Er(o){return new DOMParser().parseFromString(o,"text/xml")}function Pl(o,t,e){if(o.nodeType===Node.ELEMENT_NODE){let r=o,n;!r.namespaceURI||r.namespaceURI.startsWith("http://www.imsglobal.org/xsd/qti/")||r.namespaceURI.startsWith("http://www.imsglobal.org/xsd/imsqti")?n=e?t.createElement(r.localName,{customElementRegistry:e}):t.createElement(r.localName):n=t.createElementNS(r.namespaceURI,r.tagName);for(let i=0;i<r.attributes.length;i++){let s=r.attributes[i];n.setAttribute(s.localName,s.value)}for(let i=0;i<r.childNodes.length;i++)n.appendChild(Pl(r.childNodes[i],t,e));return n}return o.cloneNode(!1)}function Sr(o,t){let e=document.createDocumentFragment();for(let r=0;r<o.childNodes.length;r++)e.appendChild(Pl(o.childNodes[r],document,t));return e}function Ar(o,t){t.endsWith("/")||(t+="/"),o.querySelectorAll("*").forEach(r=>{for(let n of["src","href","srcset","poster"]){let i=r.getAttribute(n)?.trim();if(i&&!/^(data:|https?:|blob:)/.test(i)){let s=t+encodeURI(i);r.setAttribute(n,s)}}})}var jt=()=>{let o,t="",e={load(r,n){return t=r,kr(r,n).then(i=>(o=i,e))},parse(r){return o=Er(r),t="",e},path:r=>(Ar(o,r),t=null,e),fn(r){return r(o),e},pciHooks(r){return _l(o,r),e},async configurePci(r,n,i="qti-portable-custom-interaction"){return await El(o,r,n,i),e},shuffleInteractions(r){let n=typeof r=="string"?r.trim():r;if(n==null||n===""){let i=t||"default-item-seed";return Di("qtiTransformItem",i),Aa(o,i),e}return Aa(o,n),e},extendElementName:(r,n)=>(Sl(o,r,n),e),extendElementsWithClass:(r="extend")=>(Al(o,r),e),customInteraction(r,n){let i=o.querySelector("qti-custom-interaction"),s=i.querySelector("object");return i.setAttribute("data-base-ref",r),i.setAttribute("data-base-item",r+n),i.setAttribute("data",s.getAttribute("data")),i.setAttribute("width",s.getAttribute("width")),i.setAttribute("height",s.getAttribute("height")),i.removeChild(s),e},convertCDATAtoComment(){return kl(o),e},stripStyleSheets(){return Rl(o),e},html(){return t!==null&&Ar(o,t.substring(0,t.lastIndexOf("/"))),new XMLSerializer().serializeToString(Sr(o))},xml(){return new XMLSerializer().serializeToString(o)},htmlDoc(r){return t!==null&&Ar(o,t.substring(0,t.lastIndexOf("/"))),Sr(o,r)},xmlDoc(){return o}};return e};var Ml=()=>{let o,t={async load(e,r){return o=await kr(e,r),t},parse(e){o=Er(e)},assessmentTest(){let e=o.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:e.getAttribute("href"),identifier:e.getAttribute("identifier")}}};return t};function Dl(o){let t=[];return o.querySelectorAll("qti-assessment-item-ref").forEach(e=>{let r=e.getAttribute("identifier"),n=e.getAttribute("href"),i=e.getAttribute("category");t.push({identifier:r,href:n,category:i})}),t}var Ni=(o,...t)=>t.includes(o.localName)||t.includes(o.localName?.toLowerCase?.()),Nl=o=>Ni(o,"qti-assessment-item-ref","assessmentitemref"),Cn=o=>Ni(o,"qti-assessment-section","assessmentsection"),qn=(o,...t)=>t.some(e=>{let r=(o.getAttribute(e)??"").trim().toLowerCase();return r==="true"||r==="1"}),xp=(o,...t)=>t.some(e=>{let r=(o.getAttribute(e)??"").trim().toLowerCase();return r==="false"||r==="0"}),Ia=o=>Ni(o,"qti-ordering","ordering"),qp=o=>Ni(o,"qti-selection","selection"),Cp=o=>Array.from(o.children).filter(t=>Ia(t)&&qn(t,"shuffle")),kp=(o,t)=>Pi(`${o}:${t}`);function Ep(o){let t=[],e=[],r=n=>{for(let i of Array.from(n.children))Nl(i)?t.push(i):Cn(i)?r(i):!Ia(i)&&!qp(i)&&e.push(i.localName)};return r(o),{itemRefs:t,dropped:e}}function Sp(o,t){if(t.length===0)return;let e=o.getAttribute("identifier")??"(no identifier)";console.warn(`[qtiTransformTest] Subsection "${e}" is consumed by section ordering; discarding its ${[...new Set(t)].join(", ")}.`)}function $l(o,t){for(let l of Array.from(o.children))Cn(l)&&$l(l,t);let e=Cp(o);if(e.length===0)return;let r=[],n=[];for(let l of Array.from(o.children))if(Nl(l))r.push({nodes:[l],fixed:qn(l,"fixed")}),n.push(l);else if(Cn(l)){let{itemRefs:c,dropped:d}=Ep(l);if(Sp(l,d),xp(l,"keep-together","keeptogether"))for(let h of c)r.push({nodes:[h],fixed:qn(h,"fixed")});else c.length>0&&r.push({nodes:c,fixed:qn(l,"fixed")});n.push(l)}let i=n.length>0?n[n.length-1].nextSibling:null,s=o.getAttribute("identifier")??"",a=Mi(r,kp(t,s));for(let l of n)l.remove();for(let l of a)for(let c of l.nodes)o.insertBefore(c,i);for(let l of e)l.remove()}function Ll(o){return Array.from(o.getElementsByTagName("*")).some(t=>Ia(t)&&qn(t,"shuffle"))}function _a(o,t){let e=Array.from(o.getElementsByTagName("*")).filter(r=>Cn(r));for(let r of e){if(!r.parentNode)continue;let n=r.parentElement;n&&Cn(n)||$l(r,t)}}var Ir=()=>{let o,t="",e={async load(r,n){return o=await kr(r,n),t=r,e.path(r.substring(0,r.lastIndexOf("/"))),e},parse(r){return o=Er(r),t="",e},path:r=>(Ar(o,r),e),fn(r){return r(o),e},shuffleOrdering(r){if(!Ll(o))return e;let n=typeof r=="string"?r.trim():r;if(n==null||n===""){let i=t||"default-test-seed";return Di("qtiTransformTest",i),_a(o,i),e}return _a(o,n),e},items(){return Dl(o)},html(){return new XMLSerializer().serializeToString(Sr(o))},xml(){return new XMLSerializer().serializeToString(o)},htmlDoc(r){return Sr(o,r)},xmlDoc(){return o}};return e};var Vl=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Ta=class o extends Event{static{this.eventName="qti-assessment-stimulus-ref-connected"}constructor(t,e){super(o.eventName,{bubbles:!0,composed:!0,cancelable:!0}),this.element=t,this.item=e}},_r=class extends C{constructor(){super(...arguments),this.identifier="",this.href=""}async connectedCallback(){super.connectedCallback(),await this.updateComplete;let t=this.closest("qti-assessment-item"),e=new Ta(this,t);this.dispatchEvent(e);let r=t?.querySelector(`[data-stimulus-idref="${this.identifier}"]`);!e.defaultPrevented&&r&&await this.updateStimulusRef(r)}async updateStimulusRef(t){let e=await jt().load(this.href).then(r=>r.htmlDoc());if(e){let r=e.querySelectorAll("qti-stimulus-body, qti-stylesheet");t.innerHTML="",t.append(...r)}}};Vl([p({type:String})],_r.prototype,"identifier",void 0);Vl([p({type:String})],_r.prototype,"href",void 0);var $i=class extends C{};var Ap=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},kn=class extends C{render(){return b`<slot @slotchange=${this.#t}></slot>`}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>this.#t())}updated(t){t.has("context")&&this.#t()}#t(){let t=new Map,e=(this.context?.variables??[]).filter(n=>n.type==="template");for(let n of e){let i=n;i.mathVariable!==!0||i.value===null||i.value===void 0||t.set(i.identifier,this.#e(i.value))}if(t.size===0)return;let r=Array.from(this.querySelectorAll("*")).filter(n=>n.localName.toLowerCase()==="mi"||n.localName.toLowerCase()==="mn");for(let n of r){let i=n.getAttribute("data-qti-math-variable-source")??n.textContent?.trim()??"",s=t.get(i);if(!s)continue;if(n.localName.toLowerCase()==="mn"){n.textContent=s,n.setAttribute("data-qti-math-variable-source",i);continue}let a=document.createElement("mn");a.textContent=s,a.setAttribute("data-qti-math-variable-source",i),n.replaceWith(a)}}#e(t){return Array.isArray(t)?t.join(" "):t?.toString()??""}};Ap([T({context:j,subscribe:!0}),_()],kn.prototype,"context",void 0);var zl=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Tr=class extends C{constructor(){super(...arguments),this.identifier="",this.cardinality="record"}static{this.styles=[q`
68
68
  :host {
69
69
  display: none;
70
70
  }
71
- `]}render(){return b`<slot></slot>`}};zl([p({type:String})],Tr.prototype,"identifier",void 0);zl([p({type:String})],Tr.prototype,"cardinality",void 0);var Ip=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ki=class extends C{#t;render(){return b`<slot @slotchange=${this.handleSlotChange}></slot>`}handleSlotChange(){let t=Array.from(this.firstElementChild?.childNodes??[]).find(e=>e.nodeType===Node.COMMENT_NODE);try{this.#t=new Function("context","fn","item",t?.textContent??"")}catch(e){console.error("custom-operator contains invalid javascript code",e)}}calculate(){let t={variable:r=>this._context?.variables.find(i=>i.identifier===r)?.value??"",correct:r=>this._context?.variables.find(i=>i.identifier===r)?.correctResponse??""},e={getVariable:r=>this._context?.variables.find(i=>i.identifier===r),updateOutcomeVariable:(r,i)=>{this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:r,value:i}}))},updateResponseVariable:(r,i)=>{this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:r,response:i}}))}};return this.#t(this._context,t,e)}};Ip([T({context:j,subscribe:!0}),_()],ki.prototype,"_context",void 0);var Lo=class extends nt{static{this.styles=q`
71
+ `]}render(){return b`<slot></slot>`}};zl([p({type:String})],Tr.prototype,"identifier",void 0);zl([p({type:String})],Tr.prototype,"cardinality",void 0);var Ip=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},En=class extends C{#t;render(){return b`<slot @slotchange=${this.handleSlotChange}></slot>`}handleSlotChange(){let t=Array.from(this.firstElementChild?.childNodes??[]).find(e=>e.nodeType===Node.COMMENT_NODE);try{this.#t=new Function("context","fn","item",t?.textContent??"")}catch(e){console.error("custom-operator contains invalid javascript code",e)}}calculate(){let t={variable:r=>this._context?.variables.find(n=>n.identifier===r)?.value??"",correct:r=>this._context?.variables.find(n=>n.identifier===r)?.correctResponse??""},e={getVariable:r=>this._context?.variables.find(n=>n.identifier===r),updateOutcomeVariable:(r,n)=>{this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:r,value:n}}))},updateResponseVariable:(r,n)=>{this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:r,response:n}}))}};return this.#t(this._context,t,e)}};Ip([T({context:j,subscribe:!0}),_()],En.prototype,"_context",void 0);var Li=class extends ot{static{this.styles=q`
72
72
  :host {
73
73
  display: block;
74
74
  }
@@ -78,7 +78,7 @@ Make sure to test your application with a production build as repeat registratio
78
78
  .off {
79
79
  display: none;
80
80
  }
81
- `}render(){return b` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}connectedCallback(){super.connectedCallback(),this.checkShowFeedback(this.outcomeIdentifier)}};var Ft=n=>n??P;var Vo=class extends nt{constructor(){super(...arguments),this.render=()=>b` <slot part="feedback" class="${Ft(this.showStatus)}"></slot> `}static{this.styles=q`
81
+ `}render(){return b` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}connectedCallback(){super.connectedCallback(),this.checkShowFeedback(this.outcomeIdentifier)}};var Ft=o=>o??P;var Vi=class extends ot{constructor(){super(...arguments),this.render=()=>b` <slot part="feedback" class="${Ft(this.showStatus)}"></slot> `}static{this.styles=q`
82
82
  .on {
83
83
  display: inline-block;
84
84
  }
@@ -89,7 +89,7 @@ Make sure to test your application with a production build as repeat registratio
89
89
  :host {
90
90
  display: block;
91
91
  }
92
- `;var zo=class extends C{static{this.styles=jl}render(){return b`<slot part="qti-rubric-blocks" name="qti-rubric-block"></slot><slot></slot>`}};var Rr=class extends nt{static{this.styles=q`
92
+ `;var zi=class extends C{static{this.styles=jl}render(){return b`<slot part="qti-rubric-blocks" name="qti-rubric-block"></slot><slot></slot>`}};var Rr=class extends ot{static{this.styles=q`
93
93
  .cito-dialog {
94
94
  background: var(--qti-bg);
95
95
  border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color);
@@ -134,15 +134,15 @@ Make sure to test your application with a production build as repeat registratio
134
134
  <button class="button close-button" @click="${this.closeFeedback}">Close</button>
135
135
  </div>
136
136
  </dialog>
137
- `}openFeedback(){let t=this.shadowRoot?.querySelector("dialog");t&&!t.open&&t.showModal()}closeFeedback(){let t=this.shadowRoot?.querySelector("dialog");t&&t.open&&(t.close(),this.showStatus="off")}connectedCallback(){super.connectedCallback(),this.showStatus==="on"&&this.openFeedback()}updated(t){t.has("showStatus")&&(this.showStatus==="on"?this.openFeedback():this.closeFeedback())}};var Ei=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},te=class extends vr{constructor(){super(...arguments),this.externalScored=null}static{this.styles=[q`
137
+ `}openFeedback(){let t=this.shadowRoot?.querySelector("dialog");t&&!t.open&&t.showModal()}closeFeedback(){let t=this.shadowRoot?.querySelector("dialog");t&&t.open&&(t.close(),this.showStatus="off")}connectedCallback(){super.connectedCallback(),this.showStatus==="on"&&this.openFeedback()}updated(t){t.has("showStatus")&&(this.showStatus==="on"?this.openFeedback():this.closeFeedback())}};var Sn=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},te=class extends vr{constructor(){super(...arguments),this.externalScored=null}static{this.styles=[q`
138
138
  :host {
139
139
  display: none;
140
140
  }
141
- `]}render(){let t=this.itemContext?.variables.find(e=>e.identifier===this.identifier)?.value;return b`${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 i=parseFloat(r.getAttribute("source-value")),o=parseFloat(r.getAttribute("target-value"));(isNaN(i)||isNaN(o))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),e.set(i,o)}return e}return null}connectedCallback(){super.connectedCallback();let t=this.defaultValues(this.cardinality),e={identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,defaultValue:t,type:"outcome",value:null,interpolationTable:this.interpolationTable,externalScored:this.externalScored};e.value=t,(e.value===null||e.value==null)&&(e.baseType==="integer"||e.baseType==="float")&&(e.value="0"),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};Ei([p({type:String,attribute:"base-type"})],te.prototype,"baseType",void 0);Ei([p({type:String,attribute:"external-scored"})],te.prototype,"externalScored",void 0);Ei([p({type:String})],te.prototype,"identifier",void 0);Ei([p({type:String})],te.prototype,"cardinality",void 0);Ei([T({context:j,subscribe:!0}),_()],te.prototype,"itemContext",void 0);var jo=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ve=class extends vr{static{this.styles=[q`
141
+ `]}render(){let t=this.itemContext?.variables.find(e=>e.identifier===this.identifier)?.value;return b`${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 n=parseFloat(r.getAttribute("source-value")),i=parseFloat(r.getAttribute("target-value"));(isNaN(n)||isNaN(i))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),e.set(n,i)}return e}return null}connectedCallback(){super.connectedCallback();let t=this.defaultValues(this.cardinality),e={identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,defaultValue:t,type:"outcome",value:null,interpolationTable:this.interpolationTable,externalScored:this.externalScored};e.value=t,(e.value===null||e.value==null)&&(e.baseType==="integer"||e.baseType==="float")&&(e.value="0"),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};Sn([p({type:String,attribute:"base-type"})],te.prototype,"baseType",void 0);Sn([p({type:String,attribute:"external-scored"})],te.prototype,"externalScored",void 0);Sn([p({type:String})],te.prototype,"identifier",void 0);Sn([p({type:String})],te.prototype,"cardinality",void 0);Sn([T({context:j,subscribe:!0}),_()],te.prototype,"itemContext",void 0);var ji=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ve=class extends vr{static{this.styles=[q`
142
142
  :host {
143
143
  display: none;
144
144
  }
145
- `]}render(){let t=this.itemContext?.variables.find(e=>e.identifier===this.identifier)?.value;return b`${JSON.stringify(t,null,2)}`}connectedCallback(){super.connectedCallback();let t=this.defaultValues(this.cardinality),e={baseType:this.baseType,identifier:this.identifier,correctResponse:this.#t,cardinality:this.cardinality||"single",mapping:this.#e,defaultValue:t,areaMapping:this.#r,value:null,type:"response",candidateResponse:null};e.value=t,this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}get#t(){let t,e=this.querySelector("qti-correct-response");if(e){let r=e.querySelectorAll("qti-value");if(this.cardinality==="single"&&r.length>0)t=r[0].textContent.trim(),r[0].remove();else if(this.cardinality!=="single"){t=[];for(let i=0;i<r.length;i++)t.push(r[i].textContent.trim()),r[i].remove()}}return t}get#e(){let t=this.querySelector("qti-mapping"),e=parseFloat(t?.getAttribute("lower-bound")),r=parseFloat(t?.getAttribute("upper-bound"));return{defaultValue:Number(t?.getAttribute("default-value"))||0,lowerBound:isNaN(e)?null:e,upperBound:isNaN(r)?null:r,mapEntries:Array.from(t?.querySelectorAll("qti-map-entry")||[]).map(o=>({mapKey:o.getAttribute("map-key")||"",mappedValue:Number(o.getAttribute("mapped-value"))||0,caseSensitive:o.hasAttribute("case-sensitive")?o.getAttribute("case-sensitive")!=="false":!1}))}}get#r(){let t=this.querySelector("qti-area-mapping"),e=Number(t?.getAttribute("default-value"))||0,r=parseFloat(t?.getAttribute("lower-bound")),i=parseFloat(t?.getAttribute("upper-bound")),o=Array.from(t?.querySelectorAll("qti-area-map-entry")||[]).map(s=>({shape:s.getAttribute("shape")||"default",coords:s.getAttribute("coords")||"",mappedValue:Number(s.getAttribute("mapped-value"))||0,defaultValue:Number(s.getAttribute("default-value"))||0}));return{defaultValue:e,lowerBound:isNaN(r)?null:r,upperBound:isNaN(i)?null:i,areaMapEntries:o}}};jo([p({type:String,attribute:"base-type"})],ve.prototype,"baseType",void 0);jo([p({type:String})],ve.prototype,"identifier",void 0);jo([p({type:String})],ve.prototype,"cardinality",void 0);jo([T({context:j,subscribe:!0}),_()],ve.prototype,"itemContext",void 0);var Fl=`<qti-response-condition>
145
+ `]}render(){let t=this.itemContext?.variables.find(e=>e.identifier===this.identifier)?.value;return b`${JSON.stringify(t,null,2)}`}connectedCallback(){super.connectedCallback();let t=this.defaultValues(this.cardinality),e={baseType:this.baseType,identifier:this.identifier,correctResponse:this.#t,cardinality:this.cardinality||"single",mapping:this.#e,defaultValue:t,areaMapping:this.#r,value:null,type:"response",candidateResponse:null};e.value=t,this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}get#t(){let t,e=this.querySelector("qti-correct-response");if(e){let r=e.querySelectorAll("qti-value");if(this.cardinality==="single"&&r.length>0)t=r[0].textContent.trim(),r[0].remove();else if(this.cardinality!=="single"){t=[];for(let n=0;n<r.length;n++)t.push(r[n].textContent.trim()),r[n].remove()}}return t}get#e(){let t=this.querySelector("qti-mapping"),e=parseFloat(t?.getAttribute("lower-bound")),r=parseFloat(t?.getAttribute("upper-bound"));return{defaultValue:Number(t?.getAttribute("default-value"))||0,lowerBound:isNaN(e)?null:e,upperBound:isNaN(r)?null:r,mapEntries:Array.from(t?.querySelectorAll("qti-map-entry")||[]).map(i=>({mapKey:i.getAttribute("map-key")||"",mappedValue:Number(i.getAttribute("mapped-value"))||0,caseSensitive:i.hasAttribute("case-sensitive")?i.getAttribute("case-sensitive")!=="false":!1}))}}get#r(){let t=this.querySelector("qti-area-mapping"),e=Number(t?.getAttribute("default-value"))||0,r=parseFloat(t?.getAttribute("lower-bound")),n=parseFloat(t?.getAttribute("upper-bound")),i=Array.from(t?.querySelectorAll("qti-area-map-entry")||[]).map(s=>({shape:s.getAttribute("shape")||"default",coords:s.getAttribute("coords")||"",mappedValue:Number(s.getAttribute("mapped-value"))||0,defaultValue:Number(s.getAttribute("default-value"))||0}));return{defaultValue:e,lowerBound:isNaN(r)?null:r,upperBound:isNaN(n)?null:n,areaMapEntries:i}}};ji([p({type:String,attribute:"base-type"})],ve.prototype,"baseType",void 0);ji([p({type:String})],ve.prototype,"identifier",void 0);ji([p({type:String})],ve.prototype,"cardinality",void 0);ji([T({context:j,subscribe:!0}),_()],ve.prototype,"itemContext",void 0);var Fl=`<qti-response-condition>
146
146
  <qti-response-if>
147
147
  <qti-match>
148
148
  <qti-variable identifier="RESPONSE"></qti-variable>
@@ -185,27 +185,27 @@ Make sure to test your application with a production build as repeat registratio
185
185
  <qti-map-response-point identifier="RESPONSE"></qti-map-response-point>
186
186
  </qti-set-outcome-value>
187
187
  </qti-response-else>
188
- </qti-response-condition>`;var _p={map_response:Bl,map_response_point:Ul,match_correct:Fl},Fo=class extends C{static{this.styles=[q`
188
+ </qti-response-condition>`;var _p={map_response:Bl,map_response_point:Ul,match_correct:Fl},Fi=class extends C{static{this.styles=[q`
189
189
  :host {
190
190
  display: none;
191
191
  }
192
- `]}render(){return b`<slot></slot>`}process(){if(!this.closest("qti-assessment-item"))return;let e=[...this.children];for(let r of e)r.process()}firstUpdated(t){let e=this.getAttribute("template");if(!e)return;let r=e.split("/").pop().replace(".xml",""),i=_p[r];i&&(this.innerHTML=i)}};var Si=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ee=class extends C{handleclassNamesChange(){this.classNames.split(" ").forEach(e=>{switch(e){case"qti-rubric-discretionary-placement":{let r=new CustomEvent("qti-rubric:discretionary-placement",{detail:{className:e,element:this},bubbles:!0,composed:!0,cancelable:!0});if(!this.dispatchEvent(r))return;this.setAttribute("slot","qti-rubric-block")}break;case"qti-rubric-inline":this.setAttribute("slot","");break;default:break}})}static{this.styles=q`
192
+ `]}render(){return b`<slot></slot>`}process(){if(!this.closest("qti-assessment-item"))return;let e=[...this.children];for(let r of e)r.process()}firstUpdated(t){let e=this.getAttribute("template");if(!e)return;let r=e.split("/").pop().replace(".xml",""),n=_p[r];n&&(this.innerHTML=n)}};var An=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ee=class extends C{handleclassNamesChange(){this.classNames.split(" ").forEach(e=>{switch(e){case"qti-rubric-discretionary-placement":{let r=new CustomEvent("qti-rubric:discretionary-placement",{detail:{className:e,element:this},bubbles:!0,composed:!0,cancelable:!0});if(!this.dispatchEvent(r))return;this.setAttribute("slot","qti-rubric-block")}break;case"qti-rubric-inline":this.setAttribute("slot","");break;default:break}})}static{this.styles=q`
193
193
  :host {
194
194
  display: block;
195
195
  }
196
- `}render(){return b`<slot></slot>`}};Si([p({type:String})],ee.prototype,"id",void 0);Si([p({type:String})],ee.prototype,"use",void 0);Si([p({type:String})],ee.prototype,"view",void 0);Si([p({type:String,attribute:"class"})],ee.prototype,"classNames",void 0);Si([$("classNames",{waitUntilFirstUpdate:!0})],ee.prototype,"handleclassNamesChange",null);var Bo=class extends C{#t=null;firstUpdated(t){super.firstUpdated(t);let e=this.getAttribute("href");if(e!==null&&fetch(e).then(r=>r.text()).then(r=>{let i=this.#e(r);this.#t=document.createElement("style"),this.#t.media="screen",this.#t.textContent=`@scope {${i}}`,this.parentElement?this.parentElement.appendChild(this.#t):console.warn("No parent element to append the scoped stylesheet to.")}).catch(r=>{console.error("Failed to load stylesheet:",r)}),this.textContent!==null&&this.textContent.trim()!==""){let r=this.#e(this.textContent);this.#t=document.createElement("style"),this.#t.media="screen",this.#t.textContent=`@scope {${r}}`,this.parentElement?this.parentElement.appendChild(this.#t):console.warn("No parent element to append the scoped stylesheet to.")}}#e(t){return t.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\s+/g," ").replace(/\s*([{}:;])\s*/g,"$1").trim()}disconnectedCallback(){if(this.#t)try{this.#t.remove()}catch(t){console.error("Could not remove stylesheet:",t)}super.disconnectedCallback()}};var Uo=class extends C{render(){return b`<slot></slot>`}calculate(){let t=[...this.children];if(t.length!==1)return console.error("qti-template-constraint must have exactly one child expression"),!0;try{return!!t[0].calculate()}catch(e){return console.error("Error evaluating template constraint:",e),!0}}getSubRules(){return[]}process(){let t=this.calculate();return t||console.debug("Template constraint not satisfied, restarting template processing"),t}};var Ai=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},re=class extends C{constructor(){super(...arguments),this.identifier="",this.cardinality="single",this.baseType="string",this.mathVariable=!1,this.paramVariable=!1,this.#t=null}#t;static{this.styles=[q`
196
+ `}render(){return b`<slot></slot>`}};An([p({type:String})],ee.prototype,"id",void 0);An([p({type:String})],ee.prototype,"use",void 0);An([p({type:String})],ee.prototype,"view",void 0);An([p({type:String,attribute:"class"})],ee.prototype,"classNames",void 0);An([$("classNames",{waitUntilFirstUpdate:!0})],ee.prototype,"handleclassNamesChange",null);var Bi=class extends C{#t=null;firstUpdated(t){super.firstUpdated(t);let e=this.getAttribute("href");if(e!==null&&fetch(e).then(r=>r.text()).then(r=>{let n=this.#e(r);this.#t=document.createElement("style"),this.#t.media="screen",this.#t.textContent=`@scope {${n}}`,this.parentElement?this.parentElement.appendChild(this.#t):console.warn("No parent element to append the scoped stylesheet to.")}).catch(r=>{console.error("Failed to load stylesheet:",r)}),this.textContent!==null&&this.textContent.trim()!==""){let r=this.#e(this.textContent);this.#t=document.createElement("style"),this.#t.media="screen",this.#t.textContent=`@scope {${r}}`,this.parentElement?this.parentElement.appendChild(this.#t):console.warn("No parent element to append the scoped stylesheet to.")}}#e(t){return t.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\s+/g," ").replace(/\s*([{}:;])\s*/g,"$1").trim()}disconnectedCallback(){if(this.#t)try{this.#t.remove()}catch(t){console.error("Could not remove stylesheet:",t)}super.disconnectedCallback()}};var Ui=class extends C{render(){return b`<slot></slot>`}calculate(){let t=[...this.children];if(t.length!==1)return console.error("qti-template-constraint must have exactly one child expression"),!0;try{return!!t[0].calculate()}catch(e){return console.error("Error evaluating template constraint:",e),!0}}getSubRules(){return[]}process(){let t=this.calculate();return t||console.debug("Template constraint not satisfied, restarting template processing"),t}};var In=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},re=class extends C{constructor(){super(...arguments),this.identifier="",this.cardinality="single",this.baseType="string",this.mathVariable=!1,this.paramVariable=!1,this.#t=null}#t;static{this.styles=[q`
197
197
  :host {
198
198
  display: none;
199
199
  }
200
- `]}render(){return b`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>{this.#e(),this.#i()})}#e(){let t=this.querySelector("qti-default-value");if(!t)return;let e=t.textContent?.trim()||"";this.#t=this.#r(e)}#r(t){if(!t)return null;switch(this.baseType){case"integer":return parseInt(t,10);case"float":case"duration":return parseFloat(t);case"boolean":return t.toLowerCase()==="true";default:return t}}#i(){let e={...{identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,defaultValue:this.#t,value:this.#t,type:"template",mathVariable:this.mathVariable,paramVariable:this.paramVariable},value:this.#t?.toString()||""};this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}getTemplateVariable(){return{identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,value:this.#t,type:"template",mathVariable:this.mathVariable,paramVariable:this.paramVariable}}};Ai([p({type:String})],re.prototype,"identifier",void 0);Ai([p({type:String})],re.prototype,"cardinality",void 0);Ai([p({type:String,attribute:"base-type"})],re.prototype,"baseType",void 0);Ai([p({type:Boolean,attribute:"math-variable"})],re.prototype,"mathVariable",void 0);Ai([p({type:Boolean,attribute:"param-variable"})],re.prototype,"paramVariable",void 0);var Ho=class extends C{static{this.styles=[q`
200
+ `]}render(){return b`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.updateComplete.then(()=>{this.#e(),this.#n()})}#e(){let t=this.querySelector("qti-default-value");if(!t)return;let e=t.textContent?.trim()||"";this.#t=this.#r(e)}#r(t){if(!t)return null;switch(this.baseType){case"integer":return parseInt(t,10);case"float":case"duration":return parseFloat(t);case"boolean":return t.toLowerCase()==="true";default:return t}}#n(){let e={...{identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,defaultValue:this.#t,value:this.#t,type:"template",mathVariable:this.mathVariable,paramVariable:this.paramVariable},value:this.#t?.toString()||""};this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}getTemplateVariable(){return{identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,value:this.#t,type:"template",mathVariable:this.mathVariable,paramVariable:this.paramVariable}}};In([p({type:String})],re.prototype,"identifier",void 0);In([p({type:String})],re.prototype,"cardinality",void 0);In([p({type:String,attribute:"base-type"})],re.prototype,"baseType",void 0);In([p({type:Boolean,attribute:"math-variable"})],re.prototype,"mathVariable",void 0);In([p({type:Boolean,attribute:"param-variable"})],re.prototype,"paramVariable",void 0);var Hi=class extends C{static{this.styles=[q`
201
201
  :host {
202
202
  display: none;
203
203
  }
204
- `]}#t=100;render(){return b`<slot></slot>`}process(){if(!this.closest("qti-assessment-item")){console.warn("qti-template-processing must be inside qti-assessment-item");return}let e=0,r=!1;do{if(r=!1,e++,e>this.#t){console.error("Template processing exceeded maximum iterations. Possible infinite loop.");break}try{let i=[...this.children];for(let o of i)if(o.tagName.toLowerCase()==="qti-template-constraint"){if(o.calculate()===!1){r=!0;break}}else o.process()}catch(i){console.error("Error during template processing:",i);break}}while(r);this.dispatchEvent(new CustomEvent("qti-template-processing-complete",{bubbles:!0,composed:!0,detail:{iterations:e}}))}firstUpdated(t){this.getAttribute("template")&&console.info("Template processing with external template not yet implemented")}};var Hl=[{tag:"qti-assessment-item",ctor:rt},{tag:"qti-assessment-stimulus-ref",ctor:_r},{tag:"qti-companion-materials-info",ctor:$o},{tag:"qti-content-body",ctor:Ci},{tag:"qti-context-declaration",ctor:Tr},{tag:"qti-custom-operator",ctor:ki},{tag:"qti-feedback-block",ctor:Lo},{tag:"qti-feedback-inline",ctor:Vo},{tag:"qti-item-body",ctor:zo},{tag:"qti-modal-feedback",ctor:Rr},{tag:"qti-outcome-declaration",ctor:te},{tag:"qti-response-declaration",ctor:ve},{tag:"qti-response-processing",ctor:Fo},{tag:"qti-rubric-block",ctor:ee},{tag:"qti-stylesheet",ctor:Bo},{tag:"qti-template-constraint",ctor:Uo},{tag:"qti-template-declaration",ctor:re},{tag:"qti-template-processing",ctor:Ho}];var Wo=class extends Rr{static{this.styles=q`
204
+ `]}#t=100;render(){return b`<slot></slot>`}process(){if(!this.closest("qti-assessment-item")){console.warn("qti-template-processing must be inside qti-assessment-item");return}let e=0,r=!1;do{if(r=!1,e++,e>this.#t){console.error("Template processing exceeded maximum iterations. Possible infinite loop.");break}try{let n=[...this.children];for(let i of n)if(i.tagName.toLowerCase()==="qti-template-constraint"){if(i.calculate()===!1){r=!0;break}}else i.process()}catch(n){console.error("Error during template processing:",n);break}}while(r);this.dispatchEvent(new CustomEvent("qti-template-processing-complete",{bubbles:!0,composed:!0,detail:{iterations:e}}))}firstUpdated(t){this.getAttribute("template")&&console.info("Template processing with external template not yet implemented")}};var Hl=[{tag:"qti-assessment-item",ctor:rt},{tag:"qti-assessment-stimulus-ref",ctor:_r},{tag:"qti-companion-materials-info",ctor:$i},{tag:"qti-content-body",ctor:kn},{tag:"qti-context-declaration",ctor:Tr},{tag:"qti-custom-operator",ctor:En},{tag:"qti-feedback-block",ctor:Li},{tag:"qti-feedback-inline",ctor:Vi},{tag:"qti-item-body",ctor:zi},{tag:"qti-modal-feedback",ctor:Rr},{tag:"qti-outcome-declaration",ctor:te},{tag:"qti-response-declaration",ctor:ve},{tag:"qti-response-processing",ctor:Fi},{tag:"qti-rubric-block",ctor:ee},{tag:"qti-stylesheet",ctor:Bi},{tag:"qti-template-constraint",ctor:Ui},{tag:"qti-template-declaration",ctor:re},{tag:"qti-template-processing",ctor:Hi}];var Wi=class extends Rr{static{this.styles=q`
205
205
  :host {
206
206
  color: gray;
207
207
  }
208
- `}render(){return b``}};var Qo=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},we=class extends C{constructor(){super(...arguments),this.identifier="",this.class="",this.navigationMode="nonlinear",this.submissionMode="individual",this.#t=""}get title(){return this.#t}set title(t){this.#t=t,this.removeAttribute("title"),this.setAttribute("data-title",t)}#t;async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-test-part-connected",{bubbles:!0,composed:!0}))}render(){return b` <slot></slot>`}};Qo([p({type:String})],we.prototype,"identifier",void 0);Qo([p({type:String})],we.prototype,"class",void 0);Qo([p({type:String,attribute:"navigation-mode"})],we.prototype,"navigationMode",void 0);Qo([p({type:String,attribute:"submission-mode"})],we.prototype,"submissionMode",void 0);var Tp=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ii=class extends A{#t;constructor(){super(),this.addEventListener("qti-assessment-test-connected",t=>this.#t=t.detail)}getResult(){let t=this.getAttribute("include-category")?.split(" ")??[],e=this.getAttribute("exclude-category")?.split(" ")??[],r=this.getAttribute("weight-identifier")??"",i=this.getAttribute("variable-identifier"),s=Array.from(this.#t.querySelectorAll("qti-asssessment-test qti-assessment-item-ref")).filter(c=>{let d=!0;return t.length>0&&(d=t.includes(c.category)),e.length>0&&(d=!e.includes(c.category)),d}).map(c=>{let d=1;if(r){let h=c.weigths.get(r);h!=null&&(d=h)}return{item:c.identifier,weight:d}});return new Ra(this._testContext,i,s).calculate()}calculate(){return this.getResult()}};Tp([T({context:ot,subscribe:!0})],Ii.prototype,"_testContext",void 0);var Ra=class{constructor(t,e,r){this.testContext=t,this.itemVariable=e,this.includedItems=r}calculate(){let{items:t}=this.testContext,e=0,r=[...new Set(this.includedItems.map(i=>i.item))];return t.forEach(i=>{if(r.includes(i.identifier)){let o=i.variables.find(a=>a.identifier===this.itemVariable),s=this.includedItems.find(a=>a.item===i.identifier)?.weight??1;o&&(e+=Number(o.value)*s)}}),e}};var Go=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Wl=n=>{class t extends n{constructor(...r){super(...r),this.navigate=null,this.requestTimeout=3e4,this.postLoadTransformCallback=null,this.postLoadTestTransformCallback=null,this._activeController=null,this._loadResults=[],this._navigationId=0,this._loadingState={expectedItems:0,connectedItems:0,expectedStimulus:0,loadedStimulus:0,isComplete:!1},this._loadedStimulusHrefs=new Set,this._loadingStimulusHrefs=new Set,this._bindEventHandlers()}navigateTo(r,i){let o=i||this._getDefaultNavigationId(r);o&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:r,id:o},bubbles:!0,composed:!0}))}_bindEventHandlers(){this.addEventListener("qti-request-navigation",this._handleNavigationRequest.bind(this)),this.addEventListener("qti-assessment-test-connected",this._handleTestConnected.bind(this)),this.addEventListener("qti-assessment-item-connected",this._handleItemConnected.bind(this)),this.addEventListener("qti-assessment-stimulus-ref-connected",this._handleStimulusRefConnected.bind(this))}_handleTestConnected(r){this._testElement=r.detail,this._initializeNavigation()}_handleItemConnected(r){let i=r.detail;this._loadingState.connectedItems++;let o=i.querySelectorAll("qti-assessment-stimulus-ref");this._loadingState.expectedStimulus+=o.length,this._checkLoadingComplete()}async _handleStimulusRefConnected(r){r.preventDefault();let{element:i,item:o}=r;if(console.info("Stimulus ref connected:",{identifier:i.identifier,href:i.href,item:o.identifier}),this._loadedStimulusHrefs.has(i.href)){console.info("Stimulus already loaded, skipping:",i.href),this._loadingState.loadedStimulus++,this._checkLoadingComplete();return}if(this._loadingStimulusHrefs.has(i.href)){console.info("Stimulus already loading, skipping duplicate:",i.href),this._loadingState.loadedStimulus++,this._checkLoadingComplete();return}this._loadingStimulusHrefs.add(i.href),console.info("Starting stimulus load:",i.href);try{await this._loadStimulusRef(i,o),this._loadedStimulusHrefs.add(i.href),this._loadingState.loadedStimulus++,console.info("Stimulus loaded successfully:",i.href),this._checkLoadingComplete()}catch(s){s.name!=="AbortError"&&console.warn(`Failed to load stimulus ${i.identifier}:`,s),this._loadingState.loadedStimulus++,this._checkLoadingComplete()}finally{this._loadingStimulusHrefs.delete(i.href)}}_getDefaultNavigationId(r){return r==="section"?this._testElement?.querySelector("qti-assessment-section")?.identifier:this.sessionContext?.navItemRefId??this._testElement?.querySelector("qti-assessment-item-ref")?.identifier}_initializeNavigation(){if(!this.navigate)return;let r=this._getDefaultNavigationId(this.navigate);r&&this.navigateTo(this.navigate,r)}_isLinearNavigationRestricted(r,i){let o=this.sessionContext?.navItemRefId;if(!o||r==="item"&&i===o)return!1;let s=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${o}"]`);if(!s)return!1;let a=s.closest("qti-assessment-section"),l=s.closest("qti-test-part");if((a?.navigationMode||a?.getAttribute("navigation-mode")||l?.navigationMode||l?.getAttribute("navigation-mode")||"nonlinear")!=="linear")return!1;let d=Array.from(this._testElement?.querySelectorAll("qti-assessment-item-ref")||[]),h=d.findIndex(f=>f.identifier===o);if(r==="item"){let f=d.findIndex(m=>m.identifier===i);return f===-1||h===-1?!1:f!==h+1}return!0}async _handleNavigationRequest({detail:r}){if(!r?.id)return;if(this._isLinearNavigationRestricted(r.type,r.id)){this._handleNavigationError(new Error("Navigation restricted in linear mode"),r.type,r.id);return}this._cancelPreviousNavigation();let i=++this._navigationId,o=new AbortController;try{this._dispatchLoadingStarted(r.type,r.id),this._activeController=o,await this._executeNavigation(r.type,r.id,i,o)}catch(s){this._handleNavigationError(s,r.type,r.id)}finally{this._activeController===o&&(this._activeController=null),this._dispatchLoadingEnded(r.type,r.id)}}_handleNavigationError(r,i,o){r.name!=="AbortError"&&this._dispatchError(this._createNavigationError(r,i,o))}async _executeNavigation(r,i,o,s){r==="item"?await this._navigateToItem(i,o,s):await this._navigateToSection(i,o,s)}async _navigateToItem(r,i,o){let s=this._findItemRef(r);this._updateSessionContext(s,r),this._resetLoadingState(),this._loadingState.expectedItems=1,await this._loadItems([r],i,o),await this._waitForLoadingComplete(i,o),!this._isStaleNavigation(i,o)&&this._dispatchTestLoaded(this._loadResults)}async _navigateToSection(r,i,o){let a=this._findSection(r)?.closest("qti-test-part")?.identifier;this.sessionContext={...this.sessionContext,navPartId:a,navSectionId:r,navItemRefId:null};let l=this._getSectionItemIds(r);this._resetLoadingState(),this._loadingState.expectedItems=l.length,await this._loadItems(l,i,o),await this._waitForLoadingComplete(i,o),!this._isStaleNavigation(i,o)&&this._dispatchTestLoaded(this._loadResults)}_resetLoadingState(){this._loadingState={expectedItems:0,connectedItems:0,expectedStimulus:0,loadedStimulus:0,isComplete:!1},this._loadedStimulusHrefs.clear(),this._loadingStimulusHrefs.clear()}_checkLoadingComplete(){let r=this._loadingState.connectedItems>=this._loadingState.expectedItems,i=this._loadingState.loadedStimulus>=this._loadingState.expectedStimulus;r&&i&&!this._loadingState.isComplete&&(this._loadingState.isComplete=!0)}async _waitForLoadingComplete(r,i){for(;!this._loadingState.isComplete;){if(this._isStaleNavigation(r,i))return;await new Promise(o=>setTimeout(o,10))}}getLoadingProgress(){return{...this._loadingState}}async _loadStimulusRef(r,i){console.info("Loading stimulus:",r.href);let o=await this._loadStimulus(r.href);console.info("Stimulus loaded, applying content:",o?"has content":"no content"),this._applyStimulusContent(o,r,i)}_applyStimulusContent(r,i,o){if(!r){console.warn("No stimulus content to apply");return}let s=r.querySelectorAll("qti-stimulus-body, qti-stylesheet");if(console.info(`Found ${s.length} stimulus elements to apply for ${i.identifier}`),s.length===0){console.warn("No qti-stimulus-body or qti-stylesheet elements found in stimulus");return}let a=[],l=o.querySelector(`[data-stimulus-idref="${i.identifier}"]`);if(l)a.push(l),console.info("Found specific target:",l);else{let c=Array.from(this.querySelectorAll(`[data-stimulus-idref="${i.identifier}"]`));if(c.length>0)a=c,console.info("Found targets by identifier:",c.length);else{let d=Array.from(this.querySelectorAll("[data-stimulus-idref]"));a=d,console.info("Using fallback targets:",d.length)}}if(a.length===0){console.warn("No targets found for stimulus content");return}a.forEach((c,d)=>{c.innerHTML="";let h=Array.from(s).map(f=>f.cloneNode(!0));c.append(...h),console.info(`Applied stimulus content to target ${d+1}/${a.length}`)})}_cancelPreviousNavigation(){this._activeController&&(this._activeController.abort(),console.info("Previous navigation request cancelled")),this._clearNavigationState()}_clearNavigationState(){this._clearLoadedItems(),this._resetLoadingState(),this._loadResults=[]}async _loadItems(r,i,o){if(!this._testElement||r.length===0)return;let s=r.map(c=>this._findItemRef(c));this._clearLoadedItems(),this._clearStimulusRef();let l=(await Promise.all(s.map(c=>this._loadSingleItem(c,i,o)))).filter(Boolean);this._isStaleNavigation(i,o)||(l.forEach(({itemRef:c,doc:d})=>{c&&d&&(c.xmlDoc=d)}),l.forEach(({itemRef:c})=>{let d=c?.identifier;if(!c||!d)return;let h=this.testContext.items.find(f=>f.identifier===d)?.state;h!==void 0&&c.updateComplete.then(()=>{let f=c.assessmentItem;f&&(f.state=h)})}),this._loadResults=l)}async _loadSingleItem(r,i,o){try{let s=this.querySelector("test-navigation")?.qtiContext?.QTI_CONTEXT?.seed,a=(await jt().load(r.href,o.signal)).shuffleInteractions(s);return this.postLoadTransformCallback&&(a=await this.postLoadTransformCallback(a,r)),this._isStaleNavigation(i,o)?null:{itemRef:r,doc:a.htmlDoc(this._customElementRegistry())}}catch(s){if(s.name==="AbortError")throw console.info(`Item load for ${r.identifier} was aborted`),s;return console.warn(`Failed to load item ${r.identifier}:`,s),null}}async _loadStimulus(r){return(await jt().load(r,this._activeController?.signal)).htmlDoc(this._customElementRegistry())}_customElementRegistry(){let r=this.querySelector("test-container");if(r)return r.customElementRegistry??void 0}_findItemRef(r){let i=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${r}"]`);if(!i)throw new Error(`Item with identifier "${r}" not found`);return i}_findSection(r){return this._testElement?.querySelector(`qti-assessment-section[identifier="${r}"]`)||null}_updateSessionContext(r,i){let o=r.closest("qti-test-part")?.identifier,s=r.closest("qti-assessment-section")?.identifier;this.sessionContext={...this.sessionContext,navPartId:o,navSectionId:s,navItemRefId:i}}_getSectionItemIds(r){return Array.from(this._testElement.querySelectorAll(`qti-assessment-section[identifier="${r}"] > qti-assessment-item-ref`)).map(i=>i.identifier).filter(Boolean)}_clearLoadedItems(){let r=this._testElement?.querySelectorAll("qti-assessment-item-ref");Array.from(r||[]).forEach(i=>{i.xmlDoc=null})}_clearStimulusRef(){this.querySelectorAll("[data-stimulus-idref]").forEach(r=>r.innerHTML="")}_isStaleNavigation(r,i){return i.signal.aborted||r!==this._navigationId}_createNavigationError(r,i,o){return{message:r.message||`Failed to load ${i}: ${o}`,details:r,itemId:i==="item"?o:void 0,sectionId:i==="section"?o:void 0}}_dispatchLoadingStarted(r,i){this.dispatchEvent(new CustomEvent("qti-navigation-loading-started",{detail:{type:r,id:i},bubbles:!0,composed:!0}))}_dispatchLoadingEnded(r,i){this.dispatchEvent(new CustomEvent("qti-navigation-loading-ended",{detail:{type:r,id:i},bubbles:!0,composed:!0}))}_dispatchError(r){this.dispatchEvent(new CustomEvent("qti-navigation-error",{detail:r,bubbles:!0,composed:!0}))}_dispatchTestLoaded(r){requestAnimationFrame(()=>{this.dispatchEvent(new CustomEvent("qti-test-loaded",{detail:r.map(({itemRef:i})=>({identifier:i?.identifier,element:i})),bubbles:!0,composed:!0}))})}}return Go([p({type:String})],t.prototype,"navigate",void 0),Go([p({type:Number})],t.prototype,"requestTimeout",void 0),Go([p({attribute:!1})],t.prototype,"postLoadTransformCallback",void 0),Go([p({attribute:!1})],t.prototype,"postLoadTestTransformCallback",void 0),t};var Ql=n=>{class t extends n{constructor(...r){super(...r),this.sessionContext={...this.sessionContext,view:"candidate"},this.addEventListener("on-test-switch-view",i=>{this.sessionContext={...this.sessionContext,view:i.detail},this._updateElementView()}),this.addEventListener("qti-assessment-test-connected",()=>{this._updateElementView()}),this.addEventListener("qti-assessment-item-connected",i=>{this._updateElementView(),this._setCorrectResponseVisibility(i.detail)})}willUpdate(r){super.willUpdate(r),r.has("sessionContext")&&this._updateElementView()}_updateElementView(){if(this._testElement){Array.from(this._testElement.querySelectorAll("[view]")).forEach(s=>{s.classList.toggle("show",s.getAttribute("view")===this.sessionContext.view)});let o=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this.sessionContext.navItemRefId}"]`)?.assessmentItem;o&&this.updateAssessmentItemView(o,this.sessionContext.view)}}_setCorrectResponseVisibility(r){this.updateAssessmentItemView(r,this.sessionContext.view)}updateAssessmentItemView(r,i){}}return t};var Gl=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Oa=n=>{class t extends n{constructor(...r){super(...r),this.testContext=ya,this.sessionContext=ba,this._updateItemInTestContext=i=>{let o=i._context,s=o.identifier,a=o.variables,l=this.testContext.items.find(c=>c?.identifier===s);if(!l){console.warn(`Item IDs between assessment.xml and item.xml should match: ${s} is not found!`);return}if(l.variables?.length===1)this._updateItemVariablesInTestContext(s,a);else{let c=[...i.variables];for(let d of l.variables){let h=c.find(f=>f.identifier===d.identifier);h?h.value=d.value:c.push(d)}i.variables=c}},this._initializeEventListeners()}updateItemVariables(r,i){let o=this.testContext.items.find(a=>a.identifier===r);o&&(o.variables=o.variables.map(a=>{let l=i.find(c=>c.identifier===a.identifier);return l?{...a,...l}:a}));let s=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${r}"]`);s&&s.assessmentItem&&(s.assessmentItem.variables=i)}_initializeEventListeners(){this.addEventListener("qti-testdoc-loaded",()=>{this.testContext=ya,this.sessionContext=ba}),this.addEventListener("qti-assessment-test-connected",r=>{this._testElement=r.detail;let i=Array.from(this._testElement.querySelectorAll("qti-assessment-item-ref")).map(o=>({href:o.href,identifier:o.identifier,category:o.category,variables:[{identifier:"completionStatus",value:"not_attempted",type:"outcome"}]}));this.testContext={...this.testContext,items:i}}),this.addEventListener("qti-assessment-item-connected",r=>{let i=r.detail,o=i.closest("qti-assessment-item-ref")?.identifier;o&&(i.assessmentItemRefId=o),this._updateItemInTestContext(r.detail)}),this.addEventListener("qti-item-context-updated",r=>{this._updateItemVariablesInTestContext(r.detail.itemContext.identifier,r.detail.itemContext.variables,r.detail.itemContext.state)})}_updateItemVariablesInTestContext(r,i,o){this.testContext={...this.testContext,items:this.testContext.items.map(s=>s.identifier!==r?s:{...s,variables:i.map(a=>{let l=s.variables.find(c=>c.identifier===a.identifier);return l?{...l,...a}:a}),...o!==void 0?{state:o?{...o}:void 0}:{}})},this.dispatchEvent(new CustomEvent("qti-test-context-updated",{detail:this.testContext,bubbles:!1,composed:!1}))}}return Gl([p({attribute:!1,type:Object}),B({context:ot})],t.prototype,"testContext",void 0),Gl([p({attribute:!1,type:Object}),B({context:Lt})],t.prototype,"sessionContext",void 0),t},Xl=class extends Oa(C){};var Yl=n=>{class t extends n{constructor(...r){super(...r),this.addEventListener("qti-register-variable",i=>{this.testContext={...this.testContext,testOutcomeVariables:[...this.testContext.testOutcomeVariables||[],i.detail.variable]},i.stopPropagation()}),this.addEventListener("qti-set-outcome-value",i=>{let{outcomeIdentifier:o,value:s}=i.detail;this.updateOutcomeVariable(o,s),i.stopPropagation()})}outcomeProcessing(){let r=this.querySelector("qti-outcome-processing");return r?(r?.process(),!0):!1}updateOutcomeVariable(r,i){let o=this.getOutcome(r);if(!o){console.warn(`Can not set qti-outcome-identifier: ${r}, it is not available`);return}this.testContext={...this.testContext,testOutcomeVariables:this.testContext.testOutcomeVariables?.map(s=>s.identifier!==r?s:{...s,value:o.cardinality==="single"?i:[...s.value,i]})}}getOutcome(r){return this.getVariable(r)}getVariable(r){return this.testContext.testOutcomeVariables?.find(i=>i.identifier===r)||null}}return t};var Rp=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},He=class extends Wl(Ql(Yl(Oa(C)))){constructor(){super(...arguments),this.configContext={}}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:this}))}render(){return b`<slot></slot>`}};Rp([_(),B({context:pt})],He.prototype,"configContext",void 0);var Kl=q`
208
+ `}render(){return b``}};var Qi=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},we=class extends C{constructor(){super(...arguments),this.identifier="",this.class="",this.navigationMode="nonlinear",this.submissionMode="individual",this.#t=""}get title(){return this.#t}set title(t){this.#t=t,this.removeAttribute("title"),this.setAttribute("data-title",t)}#t;async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new Event("qti-test-part-connected",{bubbles:!0,composed:!0}))}render(){return b` <slot></slot>`}};Qi([p({type:String})],we.prototype,"identifier",void 0);Qi([p({type:String})],we.prototype,"class",void 0);Qi([p({type:String,attribute:"navigation-mode"})],we.prototype,"navigationMode",void 0);Qi([p({type:String,attribute:"submission-mode"})],we.prototype,"submissionMode",void 0);var Tp=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},_n=class extends A{#t;constructor(){super(),this.addEventListener("qti-assessment-test-connected",t=>this.#t=t.detail)}getResult(){let t=this.getAttribute("include-category")?.split(" ")??[],e=this.getAttribute("exclude-category")?.split(" ")??[],r=this.getAttribute("weight-identifier")??"",n=this.getAttribute("variable-identifier"),s=Array.from(this.#t.querySelectorAll("qti-asssessment-test qti-assessment-item-ref")).filter(c=>{let d=!0;return t.length>0&&(d=t.includes(c.category)),e.length>0&&(d=!e.includes(c.category)),d}).map(c=>{let d=1;if(r){let h=c.weigths.get(r);h!=null&&(d=h)}return{item:c.identifier,weight:d}});return new Ra(this._testContext,n,s).calculate()}calculate(){return this.getResult()}};Tp([T({context:it,subscribe:!0})],_n.prototype,"_testContext",void 0);var Ra=class{constructor(t,e,r){this.testContext=t,this.itemVariable=e,this.includedItems=r}calculate(){let{items:t}=this.testContext,e=0,r=[...new Set(this.includedItems.map(n=>n.item))];return t.forEach(n=>{if(r.includes(n.identifier)){let i=n.variables.find(a=>a.identifier===this.itemVariable),s=this.includedItems.find(a=>a.item===n.identifier)?.weight??1;i&&(e+=Number(i.value)*s)}}),e}};var Gi=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Wl=o=>{class t extends o{constructor(...r){super(...r),this.navigate=null,this.requestTimeout=3e4,this.postLoadTransformCallback=null,this.postLoadTestTransformCallback=null,this._activeController=null,this._loadResults=[],this._navigationId=0,this._loadingState={expectedItems:0,connectedItems:0,expectedStimulus:0,loadedStimulus:0,isComplete:!1},this._loadedStimulusHrefs=new Set,this._loadingStimulusHrefs=new Set,this._bindEventHandlers()}navigateTo(r,n){let i=n||this._getDefaultNavigationId(r);i&&this.dispatchEvent(new CustomEvent("qti-request-navigation",{detail:{type:r,id:i},bubbles:!0,composed:!0}))}_bindEventHandlers(){this.addEventListener("qti-request-navigation",this._handleNavigationRequest.bind(this)),this.addEventListener("qti-assessment-test-connected",this._handleTestConnected.bind(this)),this.addEventListener("qti-assessment-item-connected",this._handleItemConnected.bind(this)),this.addEventListener("qti-assessment-stimulus-ref-connected",this._handleStimulusRefConnected.bind(this))}_handleTestConnected(r){this._testElement=r.detail,this._initializeNavigation()}_handleItemConnected(r){let n=r.detail;this._loadingState.connectedItems++;let i=n.querySelectorAll("qti-assessment-stimulus-ref");this._loadingState.expectedStimulus+=i.length,this._checkLoadingComplete()}async _handleStimulusRefConnected(r){r.preventDefault();let{element:n,item:i}=r;if(console.info("Stimulus ref connected:",{identifier:n.identifier,href:n.href,item:i.identifier}),this._loadedStimulusHrefs.has(n.href)){console.info("Stimulus already loaded, skipping:",n.href),this._loadingState.loadedStimulus++,this._checkLoadingComplete();return}if(this._loadingStimulusHrefs.has(n.href)){console.info("Stimulus already loading, skipping duplicate:",n.href),this._loadingState.loadedStimulus++,this._checkLoadingComplete();return}this._loadingStimulusHrefs.add(n.href),console.info("Starting stimulus load:",n.href);try{await this._loadStimulusRef(n,i),this._loadedStimulusHrefs.add(n.href),this._loadingState.loadedStimulus++,console.info("Stimulus loaded successfully:",n.href),this._checkLoadingComplete()}catch(s){s.name!=="AbortError"&&console.warn(`Failed to load stimulus ${n.identifier}:`,s),this._loadingState.loadedStimulus++,this._checkLoadingComplete()}finally{this._loadingStimulusHrefs.delete(n.href)}}_getDefaultNavigationId(r){return r==="section"?this._testElement?.querySelector("qti-assessment-section")?.identifier:this.sessionContext?.navItemRefId??this._testElement?.querySelector("qti-assessment-item-ref")?.identifier}_initializeNavigation(){if(!this.navigate)return;let r=this._getDefaultNavigationId(this.navigate);r&&this.navigateTo(this.navigate,r)}_isLinearNavigationRestricted(r,n){let i=this.sessionContext?.navItemRefId;if(!i||r==="item"&&n===i)return!1;let s=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${i}"]`);if(!s)return!1;let a=s.closest("qti-assessment-section"),l=s.closest("qti-test-part");if((a?.navigationMode||a?.getAttribute("navigation-mode")||l?.navigationMode||l?.getAttribute("navigation-mode")||"nonlinear")!=="linear")return!1;let d=Array.from(this._testElement?.querySelectorAll("qti-assessment-item-ref")||[]),h=d.findIndex(f=>f.identifier===i);if(r==="item"){let f=d.findIndex(m=>m.identifier===n);return f===-1||h===-1?!1:f!==h+1}return!0}async _handleNavigationRequest({detail:r}){if(!r?.id)return;if(this._isLinearNavigationRestricted(r.type,r.id)){this._handleNavigationError(new Error("Navigation restricted in linear mode"),r.type,r.id);return}this._cancelPreviousNavigation();let n=++this._navigationId,i=new AbortController;try{this._dispatchLoadingStarted(r.type,r.id),this._activeController=i,await this._executeNavigation(r.type,r.id,n,i)}catch(s){this._handleNavigationError(s,r.type,r.id)}finally{this._activeController===i&&(this._activeController=null),this._dispatchLoadingEnded(r.type,r.id)}}_handleNavigationError(r,n,i){r.name!=="AbortError"&&this._dispatchError(this._createNavigationError(r,n,i))}async _executeNavigation(r,n,i,s){r==="item"?await this._navigateToItem(n,i,s):await this._navigateToSection(n,i,s)}async _navigateToItem(r,n,i){let s=this._findItemRef(r);this._updateSessionContext(s,r),this._resetLoadingState(),this._loadingState.expectedItems=1,await this._loadItems([r],n,i),await this._waitForLoadingComplete(n,i),!this._isStaleNavigation(n,i)&&this._dispatchTestLoaded(this._loadResults)}async _navigateToSection(r,n,i){let a=this._findSection(r)?.closest("qti-test-part")?.identifier;this.sessionContext={...this.sessionContext,navPartId:a,navSectionId:r,navItemRefId:null};let l=this._getSectionItemIds(r);this._resetLoadingState(),this._loadingState.expectedItems=l.length,await this._loadItems(l,n,i),await this._waitForLoadingComplete(n,i),!this._isStaleNavigation(n,i)&&this._dispatchTestLoaded(this._loadResults)}_resetLoadingState(){this._loadingState={expectedItems:0,connectedItems:0,expectedStimulus:0,loadedStimulus:0,isComplete:!1},this._loadedStimulusHrefs.clear(),this._loadingStimulusHrefs.clear()}_checkLoadingComplete(){let r=this._loadingState.connectedItems>=this._loadingState.expectedItems,n=this._loadingState.loadedStimulus>=this._loadingState.expectedStimulus;r&&n&&!this._loadingState.isComplete&&(this._loadingState.isComplete=!0)}async _waitForLoadingComplete(r,n){for(;!this._loadingState.isComplete;){if(this._isStaleNavigation(r,n))return;await new Promise(i=>setTimeout(i,10))}}getLoadingProgress(){return{...this._loadingState}}async _loadStimulusRef(r,n){console.info("Loading stimulus:",r.href);let i=await this._loadStimulus(r.href);console.info("Stimulus loaded, applying content:",i?"has content":"no content"),this._applyStimulusContent(i,r,n)}_applyStimulusContent(r,n,i){if(!r){console.warn("No stimulus content to apply");return}let s=r.querySelectorAll("qti-stimulus-body, qti-stylesheet");if(console.info(`Found ${s.length} stimulus elements to apply for ${n.identifier}`),s.length===0){console.warn("No qti-stimulus-body or qti-stylesheet elements found in stimulus");return}let a=[],l=i.querySelector(`[data-stimulus-idref="${n.identifier}"]`);if(l)a.push(l),console.info("Found specific target:",l);else{let c=Array.from(this.querySelectorAll(`[data-stimulus-idref="${n.identifier}"]`));if(c.length>0)a=c,console.info("Found targets by identifier:",c.length);else{let d=Array.from(this.querySelectorAll("[data-stimulus-idref]"));a=d,console.info("Using fallback targets:",d.length)}}if(a.length===0){console.warn("No targets found for stimulus content");return}a.forEach((c,d)=>{c.innerHTML="";let h=Array.from(s).map(f=>f.cloneNode(!0));c.append(...h),console.info(`Applied stimulus content to target ${d+1}/${a.length}`)})}_cancelPreviousNavigation(){this._activeController&&(this._activeController.abort(),console.info("Previous navigation request cancelled")),this._clearNavigationState()}_clearNavigationState(){this._clearLoadedItems(),this._resetLoadingState(),this._loadResults=[]}async _loadItems(r,n,i){if(!this._testElement||r.length===0)return;let s=r.map(c=>this._findItemRef(c));this._clearLoadedItems(),this._clearStimulusRef();let l=(await Promise.all(s.map(c=>this._loadSingleItem(c,n,i)))).filter(Boolean);this._isStaleNavigation(n,i)||(l.forEach(({itemRef:c,doc:d})=>{c&&d&&(c.xmlDoc=d)}),l.forEach(({itemRef:c})=>{let d=c?.identifier;if(!c||!d)return;let h=this.testContext.items.find(f=>f.identifier===d)?.state;h!==void 0&&c.updateComplete.then(()=>{let f=c.assessmentItem;f&&(f.state=h)})}),this._loadResults=l)}async _loadSingleItem(r,n,i){try{let s=this.querySelector("test-navigation")?.qtiContext?.QTI_CONTEXT?.seed,a=(await jt().load(r.href,i.signal)).shuffleInteractions(s);return this.postLoadTransformCallback&&(a=await this.postLoadTransformCallback(a,r)),this._isStaleNavigation(n,i)?null:{itemRef:r,doc:a.htmlDoc(this._customElementRegistry())}}catch(s){if(s.name==="AbortError")throw console.info(`Item load for ${r.identifier} was aborted`),s;return console.warn(`Failed to load item ${r.identifier}:`,s),null}}async _loadStimulus(r){return(await jt().load(r,this._activeController?.signal)).htmlDoc(this._customElementRegistry())}_customElementRegistry(){let r=this.querySelector("test-container");if(r)return r.customElementRegistry??void 0}_findItemRef(r){let n=this._testElement?.querySelector(`qti-assessment-item-ref[identifier="${r}"]`);if(!n)throw new Error(`Item with identifier "${r}" not found`);return n}_findSection(r){return this._testElement?.querySelector(`qti-assessment-section[identifier="${r}"]`)||null}_updateSessionContext(r,n){let i=r.closest("qti-test-part")?.identifier,s=r.closest("qti-assessment-section")?.identifier;this.sessionContext={...this.sessionContext,navPartId:i,navSectionId:s,navItemRefId:n}}_getSectionItemIds(r){return Array.from(this._testElement.querySelectorAll(`qti-assessment-section[identifier="${r}"] > qti-assessment-item-ref`)).map(n=>n.identifier).filter(Boolean)}_clearLoadedItems(){let r=this._testElement?.querySelectorAll("qti-assessment-item-ref");Array.from(r||[]).forEach(n=>{n.xmlDoc=null})}_clearStimulusRef(){this.querySelectorAll("[data-stimulus-idref]").forEach(r=>r.innerHTML="")}_isStaleNavigation(r,n){return n.signal.aborted||r!==this._navigationId}_createNavigationError(r,n,i){return{message:r.message||`Failed to load ${n}: ${i}`,details:r,itemId:n==="item"?i:void 0,sectionId:n==="section"?i:void 0}}_dispatchLoadingStarted(r,n){this.dispatchEvent(new CustomEvent("qti-navigation-loading-started",{detail:{type:r,id:n},bubbles:!0,composed:!0}))}_dispatchLoadingEnded(r,n){this.dispatchEvent(new CustomEvent("qti-navigation-loading-ended",{detail:{type:r,id:n},bubbles:!0,composed:!0}))}_dispatchError(r){this.dispatchEvent(new CustomEvent("qti-navigation-error",{detail:r,bubbles:!0,composed:!0}))}_dispatchTestLoaded(r){requestAnimationFrame(()=>{this.dispatchEvent(new CustomEvent("qti-test-loaded",{detail:r.map(({itemRef:n})=>({identifier:n?.identifier,element:n})),bubbles:!0,composed:!0}))})}}return Gi([p({type:String})],t.prototype,"navigate",void 0),Gi([p({type:Number})],t.prototype,"requestTimeout",void 0),Gi([p({attribute:!1})],t.prototype,"postLoadTransformCallback",void 0),Gi([p({attribute:!1})],t.prototype,"postLoadTestTransformCallback",void 0),t};var Ql=o=>{class t extends o{constructor(...r){super(...r),this.sessionContext={...this.sessionContext,view:"candidate"},this.addEventListener("on-test-switch-view",n=>{this.sessionContext={...this.sessionContext,view:n.detail},this._updateElementView()}),this.addEventListener("qti-assessment-test-connected",()=>{this._updateElementView()}),this.addEventListener("qti-assessment-item-connected",n=>{this._updateElementView(),this._setCorrectResponseVisibility(n.detail)})}willUpdate(r){super.willUpdate(r),r.has("sessionContext")&&this._updateElementView()}_updateElementView(){if(this._testElement){Array.from(this._testElement.querySelectorAll("[view]")).forEach(s=>{s.classList.toggle("show",s.getAttribute("view")===this.sessionContext.view)});let i=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${this.sessionContext.navItemRefId}"]`)?.assessmentItem;i&&this.updateAssessmentItemView(i,this.sessionContext.view)}}_setCorrectResponseVisibility(r){this.updateAssessmentItemView(r,this.sessionContext.view)}updateAssessmentItemView(r,n){}}return t};var Gl=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Oa=o=>{class t extends o{constructor(...r){super(...r),this.testContext=ya,this.sessionContext=ba,this._updateItemInTestContext=n=>{let i=n._context,s=i.identifier,a=i.variables,l=this.testContext.items.find(c=>c?.identifier===s);if(!l){console.warn(`Item IDs between assessment.xml and item.xml should match: ${s} is not found!`);return}if(l.variables?.length===1)this._updateItemVariablesInTestContext(s,a);else{let c=[...n.variables];for(let d of l.variables){let h=c.find(f=>f.identifier===d.identifier);h?h.value=d.value:c.push(d)}n.variables=c}},this._initializeEventListeners()}updateItemVariables(r,n){let i=this.testContext.items.find(a=>a.identifier===r);i&&(i.variables=i.variables.map(a=>{let l=n.find(c=>c.identifier===a.identifier);return l?{...a,...l}:a}));let s=this._testElement.querySelector(`qti-assessment-item-ref[identifier="${r}"]`);s&&s.assessmentItem&&(s.assessmentItem.variables=n)}_initializeEventListeners(){this.addEventListener("qti-testdoc-loaded",()=>{this.testContext=ya,this.sessionContext=ba}),this.addEventListener("qti-assessment-test-connected",r=>{this._testElement=r.detail;let n=Array.from(this._testElement.querySelectorAll("qti-assessment-item-ref")).map(i=>({href:i.href,identifier:i.identifier,category:i.category,variables:[{identifier:"completionStatus",value:"not_attempted",type:"outcome"}]}));this.testContext={...this.testContext,items:n}}),this.addEventListener("qti-assessment-item-connected",r=>{let n=r.detail,i=n.closest("qti-assessment-item-ref")?.identifier;i&&(n.assessmentItemRefId=i),this._updateItemInTestContext(r.detail)}),this.addEventListener("qti-item-context-updated",r=>{this._updateItemVariablesInTestContext(r.detail.itemContext.identifier,r.detail.itemContext.variables,r.detail.itemContext.state)})}_updateItemVariablesInTestContext(r,n,i){this.testContext={...this.testContext,items:this.testContext.items.map(s=>s.identifier!==r?s:{...s,variables:n.map(a=>{let l=s.variables.find(c=>c.identifier===a.identifier);return l?{...l,...a}:a}),...i!==void 0?{state:i?{...i}:void 0}:{}})},this.dispatchEvent(new CustomEvent("qti-test-context-updated",{detail:this.testContext,bubbles:!1,composed:!1}))}}return Gl([p({attribute:!1,type:Object}),B({context:it})],t.prototype,"testContext",void 0),Gl([p({attribute:!1,type:Object}),B({context:Lt})],t.prototype,"sessionContext",void 0),t},Xl=class extends Oa(C){};var Yl=o=>{class t extends o{constructor(...r){super(...r),this.addEventListener("qti-register-variable",n=>{this.testContext={...this.testContext,testOutcomeVariables:[...this.testContext.testOutcomeVariables||[],n.detail.variable]},n.stopPropagation()}),this.addEventListener("qti-set-outcome-value",n=>{let{outcomeIdentifier:i,value:s}=n.detail;this.updateOutcomeVariable(i,s),n.stopPropagation()})}outcomeProcessing(){let r=this.querySelector("qti-outcome-processing");return r?(r?.process(),!0):!1}updateOutcomeVariable(r,n){let i=this.getOutcome(r);if(!i){console.warn(`Can not set qti-outcome-identifier: ${r}, it is not available`);return}this.testContext={...this.testContext,testOutcomeVariables:this.testContext.testOutcomeVariables?.map(s=>s.identifier!==r?s:{...s,value:i.cardinality==="single"?n:[...s.value,n]})}}getOutcome(r){return this.getVariable(r)}getVariable(r){return this.testContext.testOutcomeVariables?.find(n=>n.identifier===r)||null}}return t};var Rp=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},He=class extends Wl(Ql(Yl(Oa(C)))){constructor(){super(...arguments),this.configContext={}}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this.dispatchEvent(new CustomEvent("qti-test-connected",{detail:this}))}render(){return b`<slot></slot>`}};Rp([_(),B({context:pt})],He.prototype,"configContext",void 0);var Kl=q`
209
209
  display: inline-flex;
210
210
  align-items: center;
211
211
  cursor: pointer;
@@ -218,7 +218,7 @@ Make sure to test your application with a production build as repeat registratio
218
218
  `,bt=q`
219
219
  cursor: not-allowed;
220
220
  opacity: 0.8;
221
- `,Nx=q`
221
+ `,Dx=q`
222
222
  ${Kl};
223
223
  border: 1px solid gray;
224
224
  `;var Pr=class extends C{static{this.styles=q`
@@ -228,7 +228,7 @@ Make sure to test your application with a production build as repeat registratio
228
228
  :host([disabled]) {
229
229
  ${bt};
230
230
  }
231
- `}constructor(){super(),this.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("test-end-attempt",{bubbles:!0}));let e=this.closest("qti-test").querySelector("test-container");Array.from(e.shadowRoot.querySelectorAll("[view]")).forEach(i=>{i.classList.toggle("show",!0)})})}render(){return b` <slot></slot> `}};var Xo=class{constructor(t){this.G=t}disconnect(){this.G=void 0}reconnect(t){this.G=t}deref(){return this.G}},Yo=class{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){this.Y??=new Promise(t=>this.Z=t)}resume(){this.Z?.(),this.Y=this.Z=void 0}};var Jl=n=>!vl(n)&&typeof n.then=="function",Zl=1073741823,Pa=class extends ye{constructor(){super(...arguments),this._$Cwt=Zl,this._$Cbt=[],this._$CK=new Xo(this),this._$CX=new Yo}render(...t){return t.find(e=>!Jl(e))??Z}update(t,e){let r=this._$Cbt,i=r.length;this._$Cbt=e;let o=this._$CK,s=this._$CX;this.isConnected||this.disconnected();for(let a=0;a<e.length&&!(a>this._$Cwt);a++){let l=e[a];if(!Jl(l))return this._$Cwt=a,l;a<i&&l===r[a]||(this._$Cwt=Zl,i=0,Promise.resolve(l).then(async c=>{for(;s.get();)await s.get();let d=o.deref();if(d!==void 0){let h=d._$Cbt.indexOf(l);h>-1&&h<d._$Cwt&&(d._$Cwt=h,d.setValue(c))}}))}return Z}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}},Ko=Et(Pa);var Jo=`
231
+ `}constructor(){super(),this.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("test-end-attempt",{bubbles:!0}));let e=this.closest("qti-test").querySelector("test-container");Array.from(e.shadowRoot.querySelectorAll("[view]")).forEach(n=>{n.classList.toggle("show",!0)})})}render(){return b` <slot></slot> `}};var Xi=class{constructor(t){this.G=t}disconnect(){this.G=void 0}reconnect(t){this.G=t}deref(){return this.G}},Yi=class{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){this.Y??=new Promise(t=>this.Z=t)}resume(){this.Z?.(),this.Y=this.Z=void 0}};var Jl=o=>!vl(o)&&typeof o.then=="function",Zl=1073741823,Pa=class extends ye{constructor(){super(...arguments),this._$Cwt=Zl,this._$Cbt=[],this._$CK=new Xi(this),this._$CX=new Yi}render(...t){return t.find(e=>!Jl(e))??Z}update(t,e){let r=this._$Cbt,n=r.length;this._$Cbt=e;let i=this._$CK,s=this._$CX;this.isConnected||this.disconnected();for(let a=0;a<e.length&&!(a>this._$Cwt);a++){let l=e[a];if(!Jl(l))return this._$Cwt=a,l;a<n&&l===r[a]||(this._$Cwt=Zl,n=0,Promise.resolve(l).then(async c=>{for(;s.get();)await s.get();let d=i.deref();if(d!==void 0){let h=d._$Cbt.indexOf(l);h>-1&&h<d._$Cwt&&(d._$Cwt=h,d.setValue(c))}}))}return Z}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}},Ki=Et(Pa);var Ji=`
232
232
  @layer qti-base, qti-components, qti-extended;
233
233
 
234
234
  @layer qti-components.reset, qti-components.global, qti-components.interactions.base,
@@ -6292,28 +6292,28 @@ div.full-correct-response-inline {
6292
6292
  display: inline-block;
6293
6293
  }
6294
6294
  }
6295
- `;var We=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},St=class extends C{constructor(){super(...arguments),this.customElementRegistry=null,this.testURL=null,this.testDoc=null,this.testXML=null,this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}},this.#t=null,this.#e=null}#t;#e;createRenderRoot(){let t=this.customElementRegistry;return this.#e=t,this.shadowRoot??this.attachShadow({...this.constructor.shadowRootOptions,...t?{customElementRegistry:t}:{}})}async handleTestURLChange(){if(this.testURL)try{let t=this.qtiContext?.QTI_CONTEXT?.seed,e=(await Ir().load(this.testURL)).shuffleOrdering(t),r=this.closest("qti-test");if(r?.postLoadTestTransformCallback){let o=e.htmlDoc(this.#e??void 0).querySelector("qti-assessment-test");o&&(e=await r.postLoadTestTransformCallback(e,o))}this.#r(e.htmlDoc(this.#e??void 0))}catch(t){console.error("Error loading or parsing XML:",t)}}#r(t){this.testDoc=t,this.dispatchEvent(new CustomEvent("qti-testdoc-loaded",{bubbles:!0,composed:!0}))}handleTestXMLChange(){if(this.testXML)try{let t=this.qtiContext?.QTI_CONTEXT?.seed;this.#r(Ir().parse(this.testXML).shuffleOrdering(t).htmlDoc(this.#e??void 0))}catch(t){console.error("Error parsing XML:",t)}}async connectedCallback(){super.connectedCallback(),this.#i(),this.#o(),this.testURL&&this.handleTestURLChange(),this.testXML&&this.handleTestXMLChange()}#i(){let t=this.querySelector("template");this.#t=t?t.content:b``}#o(){let t=new CSSStyleSheet;t.replaceSync(Jo),this.shadowRoot.adoptedStyleSheets=[t]}render(){return b`
6295
+ `;var We=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},St=class extends C{constructor(){super(...arguments),this.customElementRegistry=null,this.testURL=null,this.testDoc=null,this.testXML=null,this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}},this.#t=null,this.#e=null}#t;#e;createRenderRoot(){let t=this.customElementRegistry;return this.#e=t,this.shadowRoot??this.attachShadow({...this.constructor.shadowRootOptions,...t?{customElementRegistry:t}:{}})}async handleTestURLChange(){if(this.testURL)try{let t=this.qtiContext?.QTI_CONTEXT?.seed,e=(await Ir().load(this.testURL)).shuffleOrdering(t),r=this.closest("qti-test");if(r?.postLoadTestTransformCallback){let i=e.htmlDoc(this.#e??void 0).querySelector("qti-assessment-test");i&&(e=await r.postLoadTestTransformCallback(e,i))}this.#r(e.htmlDoc(this.#e??void 0))}catch(t){console.error("Error loading or parsing XML:",t)}}#r(t){this.testDoc=t,this.dispatchEvent(new CustomEvent("qti-testdoc-loaded",{bubbles:!0,composed:!0}))}handleTestXMLChange(){if(this.testXML)try{let t=this.qtiContext?.QTI_CONTEXT?.seed;this.#r(Ir().parse(this.testXML).shuffleOrdering(t).htmlDoc(this.#e??void 0))}catch(t){console.error("Error parsing XML:",t)}}async connectedCallback(){super.connectedCallback(),this.#n(),this.#i(),this.testURL&&this.handleTestURLChange(),this.testXML&&this.handleTestXMLChange()}#n(){let t=this.querySelector("template");this.#t=t?t.content:b``}#i(){let t=new CSSStyleSheet;t.replaceSync(Ji),this.shadowRoot.adoptedStyleSheets=[t]}render(){return b`
6296
6296
  ${this.#t}
6297
6297
  <slot></slot>
6298
- ${Ko(this.testDoc,b`<span>Loading...</span>`)}
6299
- `}};We([p({attribute:!1})],St.prototype,"customElementRegistry",void 0);We([p({type:String,attribute:"test-url"})],St.prototype,"testURL",void 0);We([_()],St.prototype,"testDoc",void 0);We([_()],St.prototype,"testXML",void 0);We([_(),T({context:ut,subscribe:!0})],St.prototype,"qtiContext",void 0);We([$("testURL",{waitUntilFirstUpdate:!0})],St.prototype,"handleTestURLChange",null);We([$("testXML",{waitUntilFirstUpdate:!0})],St.prototype,"handleTestXMLChange",null);var Ma=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Qe=class extends C{_handleTestElementChange(t,e){e&&this.requestUpdate()}static{this.styles=q`
6298
+ ${Ki(this.testDoc,b`<span>Loading...</span>`)}
6299
+ `}};We([p({attribute:!1})],St.prototype,"customElementRegistry",void 0);We([p({type:String,attribute:"test-url"})],St.prototype,"testURL",void 0);We([_()],St.prototype,"testDoc",void 0);We([_()],St.prototype,"testXML",void 0);We([_(),T({context:ut,subscribe:!0})],St.prototype,"qtiContext",void 0);We([$("testURL",{waitUntilFirstUpdate:!0})],St.prototype,"handleTestURLChange",null);We([$("testXML",{waitUntilFirstUpdate:!0})],St.prototype,"handleTestXMLChange",null);var Ma=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Qe=class extends C{_handleTestElementChange(t,e){e&&this.requestUpdate()}static{this.styles=q`
6300
6300
  :host {
6301
6301
  ${gt};
6302
6302
  }
6303
6303
  :host([disabled]) {
6304
6304
  ${bt};
6305
6305
  }
6306
- `}constructor(){super(),this._internalDisabled=!1,this.addEventListener("click",t=>{t.preventDefault(),this._internalDisabled||this.dispatchEvent(new CustomEvent("test-end-attempt",{bubbles:!0}))})}willUpdate(t){this.checkDisabled()}checkDisabled(){let t=this.computedContext?.testParts.find(a=>a.active);if(!t)return;let e=t.sections.flatMap(a=>a.items),r=e.findIndex(a=>a.active),i=e[r];if(!i){this._internalDisabled=!1;return}let o=i.maxAttempts??1,s=i.numAttempts||0;if(!i.adaptive&&i.optimal){this._internalDisabled=!0;return}if(!i.adaptive&&o>0&&s>=o){this._internalDisabled=!0;return}i.allowSkipping===!1?this._internalDisabled=i.valid===!1||i.isDefaultResponse:this._internalDisabled=!1}render(){return b` <slot></slot> `}};Ma([T({context:z,subscribe:!0}),p({attribute:!1})],Qe.prototype,"computedContext",void 0);Ma([p({type:Boolean,reflect:!0,attribute:"disabled"})],Qe.prototype,"_internalDisabled",void 0);Ma([$("computedContext")],Qe.prototype,"_handleTestElementChange",null);var Pp=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},_i=class extends C{static{this.styles=q`
6306
+ `}constructor(){super(),this._internalDisabled=!1,this.addEventListener("click",t=>{t.preventDefault(),this._internalDisabled||this.dispatchEvent(new CustomEvent("test-end-attempt",{bubbles:!0}))})}willUpdate(t){this.checkDisabled()}checkDisabled(){let t=this.computedContext?.testParts.find(a=>a.active);if(!t)return;let e=t.sections.flatMap(a=>a.items),r=e.findIndex(a=>a.active),n=e[r];if(!n){this._internalDisabled=!1;return}let i=n.maxAttempts??1,s=n.numAttempts||0;if(!n.adaptive&&n.optimal){this._internalDisabled=!0;return}if(!n.adaptive&&i>0&&s>=i){this._internalDisabled=!0;return}n.allowSkipping===!1?this._internalDisabled=n.valid===!1||n.isDefaultResponse:this._internalDisabled=!1}render(){return b` <slot></slot> `}};Ma([T({context:z,subscribe:!0}),p({attribute:!1})],Qe.prototype,"computedContext",void 0);Ma([p({type:Boolean,reflect:!0,attribute:"disabled"})],Qe.prototype,"_internalDisabled",void 0);Ma([$("computedContext")],Qe.prototype,"_handleTestElementChange",null);var Op=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Tn=class extends C{static{this.styles=q`
6307
6307
  :host {
6308
6308
  ${gt};
6309
6309
  }
6310
6310
  :host([disabled]) {
6311
6311
  ${bt};
6312
6312
  }
6313
- `}constructor(){super(),this.itemId=null,this.addEventListener("click",()=>this._requestItem(this.itemId))}_requestItem(t){this.dispatchEvent(new CustomEvent("qti-request-navigation",{composed:!0,bubbles:!0,detail:{type:"item",id:t}}))}render(){return b` <slot></slot> `}};Pp([p({type:String,attribute:"item-id"})],_i.prototype,"itemId",void 0);var cn=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Da="tts-element",tn="tts-word",Zo=null;function Mp(){return Zo||(Zo=new CSSStyleSheet,Zo.replaceSync(`
6313
+ `}constructor(){super(),this.itemId=null,this.addEventListener("click",()=>this._requestItem(this.itemId))}_requestItem(t){this.dispatchEvent(new CustomEvent("qti-request-navigation",{composed:!0,bubbles:!0,detail:{type:"item",id:t}}))}render(){return b` <slot></slot> `}};Op([p({type:String,attribute:"item-id"})],Tn.prototype,"itemId",void 0);var ao=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Da="tts-element",to="tts-word",Zi=null;function Pp(){return Zi||(Zi=new CSSStyleSheet,Zi.replaceSync(`
6314
6314
  ::highlight(${Da}) { background-color: #dbeafe; color: inherit; }
6315
- ::highlight(${tn}) { background-color: #ffe066; color: inherit; }
6316
- `)),Zo}var td=Symbol("tts-context"),ie=class extends C{static{this.styles=q`
6315
+ ::highlight(${to}) { background-color: #ffe066; color: inherit; }
6316
+ `)),Zi}var td=Symbol("tts-context"),ne=class extends C{static{this.styles=q`
6317
6317
  :host {
6318
6318
  display: inline-block;
6319
6319
  }
@@ -6324,46 +6324,46 @@ div.full-correct-response-inline {
6324
6324
  opacity: 0.4;
6325
6325
  cursor: default;
6326
6326
  }
6327
- `}#t=this.attachInternals();updated(t){t.has("_tts")&&(this.#t.states.clear(),this._tts?.state&&this.#t.states.add(this._tts.state))}};cn([T({context:td,subscribe:!0})],ie.prototype,"_tts",void 0);var Ge=class extends C{#t;#e;#r;#i;#o;#n;#s;#a;#c;#h;#l;constructor(){super(),this.language="nl-NL",this.#t=this.attachInternals(),this.#e=new Map,this.#r=this.#u.bind(this),this.#i=null,this.#o=null,this.#n=0,this.#s=[],this.#a=new Highlight,this.#c=new Highlight,this.#h=void 0,this.#l=()=>this.#v(),this._ttsContext={state:"idle",currentElementIndex:0,elementCount:0,play:()=>this.#b(),pause:()=>this.#y(),resume:()=>this.#q(),stop:()=>this.#v(),prevElement:()=>this.#C(),nextElement:()=>this.#w()}}willUpdate(t){}updated(t){let e=this._sessionContext?.navItemRefId??null;this.#h!==void 0&&this.#h!==e&&(this.#v(),this.#o=null,this.#n=0,this.#p()),this.#h=e}connectedCallback(){super.connectedCallback(),this.#d("idle"),this.#i=this.closest("test-navigation")??this.closest("qti-test")??this.getRootNode(),this.#i.addEventListener("qti-assessment-item-connected",this.#r),this.#i.addEventListener("qti-request-navigation",this.#l)}disconnectedCallback(){super.disconnectedCallback(),speechSynthesis.cancel(),this.#E(),this.#i?.removeEventListener("qti-assessment-item-connected",this.#r),this.#i?.removeEventListener("qti-request-navigation",this.#l),this.#i=null,this.#e.clear()}render(){return b`<slot></slot>`}#u(t){let e=t.detail;e?.identifier&&this.#e.set(e.identifier,e)}#d(t){this._ttsContext={...this._ttsContext,state:t},this.#t.states.delete("idle"),this.#t.states.delete("playing"),this.#t.states.delete("paused"),this.#t.states.add(t)}#p(){this._ttsContext={...this._ttsContext,currentElementIndex:this.#n,elementCount:this.#o?.length??0}}#m(){if(this.#o!==null)return this.#o;let t=this._sessionContext?.navItemRefId;if(!t)return[];let e=this.#e.get(t);if(!e)return[];let r=e.querySelector("qti-item-body");if(!r)return[];let i="p, h1, h2, h3, h4, h5, h6, li, blockquote, figcaption";return this.#o=Array.from(r.querySelectorAll(i)).filter(o=>(o.textContent??"").trim().length>0),this.#o}#b(){if(!this.#m().length){console.warn("test-item-to-speech: no readable elements found in qti-item-body");return}this.#f(this.#n)}#f(t){let e=this.#o??[];if(t>=e.length){this.#k(),this.#n=e.length-1,e.length>0&&this.#g(e[this.#n]),this.#d("idle"),this.#p();return}this.#n=t,this.#p();let r=e[t];r.scrollIntoView({behavior:"smooth",block:"nearest"}),this.#g(r),this.#s=this.#x(r);let i=this.#s.map(s=>s.textContent??"").join("");if(!i.trim()){this.#f(t+1);return}let o=new SpeechSynthesisUtterance(i);o.lang=this.language,o.rate=1,o.onboundary=s=>{s.name==="word"&&this.#A(s.charIndex,s.charLength??0)},o.onend=()=>{this.#k(),this.#f(this.#n+1)},speechSynthesis.speak(o),this.#d("playing")}#y(){speechSynthesis.pause(),this.#d("paused")}#q(){speechSynthesis.resume(),this.#d("playing")}#v(){speechSynthesis.cancel(),this.#E(),this.#d("idle")}#C(){let t=this.#m();if(!t.length)return;speechSynthesis.cancel(),this.#k(),this.#n=Math.max(0,this.#n-1),this.#p();let e=t[this.#n];e.scrollIntoView({behavior:"smooth",block:"nearest"}),this.#g(e),this.#d("idle")}#w(){let t=this.#m();if(!t.length)return;speechSynthesis.cancel(),this.#k(),this.#n=Math.min(t.length-1,this.#n+1),this.#p();let e=t[this.#n];e.scrollIntoView({behavior:"smooth",block:"nearest"}),this.#g(e),this.#d("idle")}#x(t){let e=[],r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),i;for(;i=r.nextNode();)(i.textContent??"").length>0&&e.push(i);return e}#g(t){if(!("highlights"in CSS))return;this.#S(),this.#a.clear();let e=new Range;e.selectNodeContents(t),this.#a.add(e),CSS.highlights.set(Da,this.#a)}#A(t,e){if(!("highlights"in CSS))return;this.#S(),this.#c.clear();let r=this.#s.map(d=>d.textContent??"").join(""),i=t+(e>0?e:this.#I(t,r)),o=0,s=null,a=0,l=null,c=0;for(let d of this.#s){let h=d.textContent?.length??0;if(!s&&o+h>t&&(s=d,a=t-o),s&&o+h>=i){l=d,c=i-o;break}o+=h}if(s&&l){let d=new Range;d.setStart(s,a),d.setEnd(l,c),this.#c.add(d),CSS.highlights.set(tn,this.#c)}}#k(){"highlights"in CSS&&(this.#c.clear(),CSS.highlights.delete(tn))}#E(){"highlights"in CSS&&(this.#c.clear(),CSS.highlights.delete(tn),this.#a.clear(),CSS.highlights.delete(Da))}#I(t,e){let r=e.slice(t).search(/\s/);return r<0?e.length-t:r}#S(){if(!("highlights"in CSS))return;let t=Mp();document.adoptedStyleSheets.includes(t)||(document.adoptedStyleSheets=[...document.adoptedStyleSheets,t]);let r=(this.closest("test-navigation")?.querySelector("test-container")??this.closest("qti-test")?.querySelector("test-container"))?.shadowRoot;r&&!r.adoptedStyleSheets.includes(t)&&(r.adoptedStyleSheets=[...r.adoptedStyleSheets,t])}};cn([p({type:String})],Ge.prototype,"language",void 0);cn([T({context:Lt,subscribe:!0})],Ge.prototype,"_sessionContext",void 0);cn([_(),B({context:td})],Ge.prototype,"_ttsContext",void 0);var en=class extends ie{#t(){this._tts&&(this._tts.state==="idle"?this._tts.play():this._tts.state==="playing"?this._tts.pause():this._tts.resume())}render(){let t=this._tts?.state==="playing";return b`
6327
+ `}#t=this.attachInternals();updated(t){t.has("_tts")&&(this.#t.states.clear(),this._tts?.state&&this.#t.states.add(this._tts.state))}};ao([T({context:td,subscribe:!0})],ne.prototype,"_tts",void 0);var Ge=class extends C{#t;#e;#r;#n;#i;#o;#s;#a;#c;#h;#l;constructor(){super(),this.language="nl-NL",this.#t=this.attachInternals(),this.#e=new Map,this.#r=this.#u.bind(this),this.#n=null,this.#i=null,this.#o=0,this.#s=[],this.#a=new Highlight,this.#c=new Highlight,this.#h=void 0,this.#l=()=>this.#v(),this._ttsContext={state:"idle",currentElementIndex:0,elementCount:0,play:()=>this.#b(),pause:()=>this.#y(),resume:()=>this.#q(),stop:()=>this.#v(),prevElement:()=>this.#C(),nextElement:()=>this.#w()}}willUpdate(t){}updated(t){let e=this._sessionContext?.navItemRefId??null;this.#h!==void 0&&this.#h!==e&&(this.#v(),this.#i=null,this.#o=0,this.#p()),this.#h=e}connectedCallback(){super.connectedCallback(),this.#d("idle"),this.#n=this.closest("test-navigation")??this.closest("qti-test")??this.getRootNode(),this.#n.addEventListener("qti-assessment-item-connected",this.#r),this.#n.addEventListener("qti-request-navigation",this.#l)}disconnectedCallback(){super.disconnectedCallback(),speechSynthesis.cancel(),this.#E(),this.#n?.removeEventListener("qti-assessment-item-connected",this.#r),this.#n?.removeEventListener("qti-request-navigation",this.#l),this.#n=null,this.#e.clear()}render(){return b`<slot></slot>`}#u(t){let e=t.detail;e?.identifier&&this.#e.set(e.identifier,e)}#d(t){this._ttsContext={...this._ttsContext,state:t},this.#t.states.delete("idle"),this.#t.states.delete("playing"),this.#t.states.delete("paused"),this.#t.states.add(t)}#p(){this._ttsContext={...this._ttsContext,currentElementIndex:this.#o,elementCount:this.#i?.length??0}}#m(){if(this.#i!==null)return this.#i;let t=this._sessionContext?.navItemRefId;if(!t)return[];let e=this.#e.get(t);if(!e)return[];let r=e.querySelector("qti-item-body");if(!r)return[];let n="p, h1, h2, h3, h4, h5, h6, li, blockquote, figcaption";return this.#i=Array.from(r.querySelectorAll(n)).filter(i=>(i.textContent??"").trim().length>0),this.#i}#b(){if(!this.#m().length){console.warn("test-item-to-speech: no readable elements found in qti-item-body");return}this.#f(this.#o)}#f(t){let e=this.#i??[];if(t>=e.length){this.#k(),this.#o=e.length-1,e.length>0&&this.#g(e[this.#o]),this.#d("idle"),this.#p();return}this.#o=t,this.#p();let r=e[t];r.scrollIntoView({behavior:"smooth",block:"nearest"}),this.#g(r),this.#s=this.#x(r);let n=this.#s.map(s=>s.textContent??"").join("");if(!n.trim()){this.#f(t+1);return}let i=new SpeechSynthesisUtterance(n);i.lang=this.language,i.rate=1,i.onboundary=s=>{s.name==="word"&&this.#A(s.charIndex,s.charLength??0)},i.onend=()=>{this.#k(),this.#f(this.#o+1)},speechSynthesis.speak(i),this.#d("playing")}#y(){speechSynthesis.pause(),this.#d("paused")}#q(){speechSynthesis.resume(),this.#d("playing")}#v(){speechSynthesis.cancel(),this.#E(),this.#d("idle")}#C(){let t=this.#m();if(!t.length)return;speechSynthesis.cancel(),this.#k(),this.#o=Math.max(0,this.#o-1),this.#p();let e=t[this.#o];e.scrollIntoView({behavior:"smooth",block:"nearest"}),this.#g(e),this.#d("idle")}#w(){let t=this.#m();if(!t.length)return;speechSynthesis.cancel(),this.#k(),this.#o=Math.min(t.length-1,this.#o+1),this.#p();let e=t[this.#o];e.scrollIntoView({behavior:"smooth",block:"nearest"}),this.#g(e),this.#d("idle")}#x(t){let e=[],r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),n;for(;n=r.nextNode();)(n.textContent??"").length>0&&e.push(n);return e}#g(t){if(!("highlights"in CSS))return;this.#S(),this.#a.clear();let e=new Range;e.selectNodeContents(t),this.#a.add(e),CSS.highlights.set(Da,this.#a)}#A(t,e){if(!("highlights"in CSS))return;this.#S(),this.#c.clear();let r=this.#s.map(d=>d.textContent??"").join(""),n=t+(e>0?e:this.#I(t,r)),i=0,s=null,a=0,l=null,c=0;for(let d of this.#s){let h=d.textContent?.length??0;if(!s&&i+h>t&&(s=d,a=t-i),s&&i+h>=n){l=d,c=n-i;break}i+=h}if(s&&l){let d=new Range;d.setStart(s,a),d.setEnd(l,c),this.#c.add(d),CSS.highlights.set(to,this.#c)}}#k(){"highlights"in CSS&&(this.#c.clear(),CSS.highlights.delete(to))}#E(){"highlights"in CSS&&(this.#c.clear(),CSS.highlights.delete(to),this.#a.clear(),CSS.highlights.delete(Da))}#I(t,e){let r=e.slice(t).search(/\s/);return r<0?e.length-t:r}#S(){if(!("highlights"in CSS))return;let t=Pp();document.adoptedStyleSheets.includes(t)||(document.adoptedStyleSheets=[...document.adoptedStyleSheets,t]);let r=(this.closest("test-navigation")?.querySelector("test-container")??this.closest("qti-test")?.querySelector("test-container"))?.shadowRoot;r&&!r.adoptedStyleSheets.includes(t)&&(r.adoptedStyleSheets=[...r.adoptedStyleSheets,t])}};ao([p({type:String})],Ge.prototype,"language",void 0);ao([T({context:Lt,subscribe:!0})],Ge.prototype,"_sessionContext",void 0);ao([_(),B({context:td})],Ge.prototype,"_ttsContext",void 0);var eo=class extends ne{#t(){this._tts&&(this._tts.state==="idle"?this._tts.play():this._tts.state==="playing"?this._tts.pause():this._tts.resume())}render(){let t=this._tts?.state==="playing";return b`
6328
6328
  <button part="button" @click=${this.#t}>
6329
6329
  ${t?b`<slot name="pause">⏸</slot>`:b`<slot name="play">▶</slot>`}
6330
6330
  </button>
6331
- `}},rn=class extends ie{render(){return b`
6331
+ `}},ro=class extends ne{render(){return b`
6332
6332
  <button part="button" ?disabled=${this._tts?.state!=="playing"} @click=${()=>this._tts?.pause()}>
6333
6333
  <slot>⏸</slot>
6334
6334
  </button>
6335
- `}},on=class extends ie{render(){return b`
6335
+ `}},no=class extends ne{render(){return b`
6336
6336
  <button part="button" ?disabled=${this._tts?.state!=="paused"} @click=${()=>this._tts?.resume()}>
6337
6337
  <slot>▶</slot>
6338
6338
  </button>
6339
- `}},nn=class extends ie{render(){return b`
6339
+ `}},io=class extends ne{render(){return b`
6340
6340
  <button part="button" ?disabled=${this._tts?.state==="idle"} @click=${()=>this._tts?.stop()}>
6341
6341
  <slot>■</slot>
6342
6342
  </button>
6343
- `}},sn=class extends ie{render(){let t=(this._tts?.currentElementIndex??0)===0,e=(this._tts?.elementCount??0)===0;return b`
6343
+ `}},oo=class extends ne{render(){let t=(this._tts?.currentElementIndex??0)===0,e=(this._tts?.elementCount??0)===0;return b`
6344
6344
  <button part="button" ?disabled=${e||t} @click=${()=>this._tts?.prevElement()}>
6345
6345
  <slot>◀◀</slot>
6346
6346
  </button>
6347
- `}},an=class extends ie{render(){let t=(this._tts?.elementCount??0)>0&&(this._tts?.currentElementIndex??0)>=(this._tts?.elementCount??0)-1,e=(this._tts?.elementCount??0)===0;return b`
6347
+ `}},so=class extends ne{render(){let t=(this._tts?.elementCount??0)>0&&(this._tts?.currentElementIndex??0)>=(this._tts?.elementCount??0)-1,e=(this._tts?.elementCount??0)===0;return b`
6348
6348
  <button part="button" ?disabled=${e||t} @click=${()=>this._tts?.nextElement()}>
6349
6349
  <slot>▶▶</slot>
6350
6350
  </button>
6351
- `}};var xe=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},st=class extends C{#t;#e;constructor(){super(),this.identifier=void 0,this.initContext=[],this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}},this.configContext={},this.autoScoreItems=!1,this.#e=new Map,this.addEventListener("qti-assessment-test-connected",this.#a.bind(this)),this.addEventListener("qti-assessment-item-connected",this.#h.bind(this)),this.addEventListener("qti-interaction-changed",this.#s.bind(this)),this.addEventListener("qti-item-context-updated",this.#r.bind(this)),this.addEventListener("test-end-attempt",this.#o.bind(this)),this.addEventListener("test-update-outcome-variable",this.#n.bind(this))}#r(t){if(!t.detail?.responseProcessed)return;let e=t.detail.itemContext;if(!e?.identifier)return;let r=this.#u(e);this.#e.set(e.identifier,r);let i=this.computedItemFor(e.identifier),o=Number(e.variables?.find(s=>s.identifier==="numAttempts")?.value)||0;this.afterAttemptEnded(t.composedPath()[0]?.closest("qti-assessment-item"),i,this.#l(o,r,i?.maxAttempts))}afterAttemptEnded(t,e,r){}computedItemFor(t){return this.computedContext?.testParts?.flatMap(e=>e.sections).flatMap(e=>e.items).find(e=>e.identifier===t)}#i(t){return t?this.#t?.querySelector(`qti-assessment-item-ref[identifier="${t}"]`)?.assessmentItem??void 0:void 0}get activeAssessmentItem(){if(!(!this.#t||!this._sessionContext?.navItemRefId))return this.#t.querySelector(`qti-assessment-item-ref[identifier="${this._sessionContext.navItemRefId}"]`)?.assessmentItem}#o(t){let e=this.activeAssessmentItem;if(!e)return;let r=this.configContext?.reportValidityAfterScoring===!0;e.processResponse(!0,r)}#n(t){let e=this.#i(t.detail?.assessmentItemRefId);e&&e.setOutcomeVariable(t.detail.outcomeVariableId,t.detail.value)}#s(t){if(this.autoScoreItems){let e=t.composedPath()[0].closest("qti-assessment-item");if(!e)return;let r=e.variables.find(i=>i.identifier==="SCORE");if(r&&r.externalScored===null&&e.adaptive==="false"){let i=this.configContext?.reportValidityAfterScoring===!0;e.processResponse(!0,i)}}}render(){return b`<slot></slot>`}#a(t){if(this.#t=t.detail,this.#e.clear(),!this.qtiContext.QTI_CONTEXT?.testIdentifier){let i=this.qtiContext.QTI_CONTEXT||{testIdentifier:"",candidateIdentifier:"not set",environmentIdentifier:"default"};this.qtiContext={QTI_CONTEXT:{...i,testIdentifier:this.#t.identifier,environmentIdentifier:i.environmentIdentifier||"default"}}}this.#t.querySelectorAll('qti-context-declaration[identifier="QTI_CONTEXT"]').forEach(i=>{let o=this.#c(i);Object.keys(o).length>0&&(this.qtiContext={QTI_CONTEXT:{...o,...this.qtiContext.QTI_CONTEXT}})});let r=Array.from(this.#t?.querySelectorAll("qti-test-part")||[]);this.computedContext={identifier:this.#t.identifier,title:this.#t.title,view:this._sessionContext?.view,testParts:r.map(i=>{let o=[...i.querySelectorAll("qti-assessment-section")],s=i.querySelector(":scope > qti-item-session-control"),a=s?s.allowSkipping:!0,l=s?s.maxAttempts:1,c=s?s.showFeedback:!1,d=s?s.showSolution:!1;return{active:!1,identifier:i.identifier,navigationMode:i.navigationMode,submissionMode:i.submissionMode,allowSkipping:a,sections:o.map(h=>{let f=[...h.querySelectorAll("qti-assessment-item-ref")],m=h.querySelector(":scope > qti-item-session-control"),w=m?m.allowSkipping:a,x=m?m.maxAttempts:l,u=m?m.showFeedback:c,g=m?m.showSolution:d;return{active:!1,identifier:h.identifier,title:h.title,navigationMode:h.navigationMode,submissionMode:h.submissionMode,allowSkipping:w,items:f.map(y=>{let v=y.querySelector(":scope > qti-item-session-control"),I=v?v.allowSkipping:w,S=v?v.maxAttempts:x,E=v?v.showFeedback:u,k=v?v.showSolution:g;return{...this.initContext?.find(R=>R.identifier===y.identifier),active:!1,identifier:y.identifier,categories:y.category?y.category?.split(" "):[],href:y.href,variables:[],allowSkipping:I,maxAttempts:S,showFeedback:E,showSolution:k}})}})}})}}#c(t){let e={},r=t.querySelector("qti-default-value");return r&&r.querySelectorAll("qti-value[field-identifier]").forEach(o=>{let s=o.getAttribute("field-identifier"),a=o.getAttribute("base-type")||"string",l=o.textContent?.trim()||"";if(s){let c=l;switch(a){case"integer":c=parseInt(l,10);break;case"float":case"duration":c=parseFloat(l);break;case"boolean":c=l.toLowerCase()==="true";break;default:c=l;break}e[s]=c}}),e}#h(t){let e=t.detail;this.computedContext={...this.computedContext,testParts:this.computedContext.testParts.map(r=>({...r,sections:r.sections.map(i=>({...i,items:i.items.map(o=>{if(o.identifier!==e.parentElement.getAttribute("identifier"))return o;let a=e.querySelector("qti-outcome-declaration[identifier='SCORE']")?.getAttribute("externalScored"),l=e.querySelectorAll("qti-response-declaration"),c=Array.from(l).some(m=>m.querySelector("qti-correct-response")),d=Array.from(l).some(m=>{let w=m.querySelector("qti-mapping"),x=m.querySelector("qti-area-mapping");return w?.querySelector("qti-map-entry")||x?.querySelector("qti-area-map-entry")}),h=c||d,f=!!e.querySelector("qti-response-processing");return{...o,assessmentItemIdentifier:e.getAttribute("identifier"),label:e.getAttribute("label"),title:e.title,externalScored:a,adaptive:e.adaptive=="true"||!1,timeDependent:e.timeDependent=="true"||!1,variables:e.variables,hasCorrectResponse:h,hasResponseProcessing:f}})}))}))}}willUpdate(t){if(!this.computedContext)return;let e=1;this.computedContext={...this.computedContext,view:this._sessionContext?.view,testParts:this.computedContext.testParts.map(r=>({...r,active:this._sessionContext?.navPartId===r.identifier||!1,sections:r.sections.map(i=>({...i,active:this._sessionContext?.navSectionId===i.identifier||!1,completed:i.items.every(o=>this._testContext.items.find(s=>s.identifier===o.identifier)?.variables.find(s=>s.identifier==="completionStatus").value==="completed"),items:i.items.map(o=>{let s=this._testContext?.items.find(E=>E.identifier===o.identifier),a={...o,...s,...this.initContext?.find(E=>E.identifier===o.identifier)},l=a.variables?.find(E=>E.identifier=="SCORE")?.value,c=l==null?null:parseFloat(l?.toString()),d=a.variables?.find(E=>E.identifier==="completionStatus")?.value,h=a.variables?.find(E=>E.identifier==="RESPONSE")?.value||"",f=Number(a.variables?.find(E=>E.identifier==="numAttempts")?.value)||0,m=this._sessionContext?.navItemRefId===a.identifier||!1,w=this.#i(a.identifier)?.validate(!1)??!0,u=(s?.variables?.filter(E=>E.type==="response")||[]).every(E=>{if(E.value===void 0||E.value===null)return!0;let k;switch(E.baseType){case"integer":case"float":case"duration":k="0";break;case"boolean":k="false";break;default:k="";break}let R=E.defaultValue??k;if(Array.isArray(E.value)){let N=Array.isArray(R)?R:[R];return E.value.length===N.length&&E.value.every((V,L)=>V===N[L])}return E.value===R}),g=o.categories.includes(this.configContext?.infoItemCategory)?null:e++,y=o.variables?.find(E=>E.identifier=="MAXSCORE")?.value,v=y==null?null:parseFloat(y?.toString()),I=this.#e.get(a.identifier);I===void 0&&(I=s?this.#u(s):"unscored",f>0&&this.#e.set(a.identifier,I));let S=this.#l(f,I,a.maxAttempts);return{...a,completionStatus:d,numAttempts:f,score:c,response:h,index:g,active:m,valid:w,isDefaultResponse:u,maxScore:v,done:S,optimal:this.#e.get(a.identifier)==="optimal"}})}))}))},this.dispatchEvent(new CustomEvent("qti-computed-context-updated",{detail:this.computedContext,bubbles:!0}))}#l(t,e,r){if(t===0)return!1;if(e!=="suboptimal")return!0;let i=r??1;return i>0&&t>=i}#u(t){let e=t.variables??[],r=this.#d(e,"SCORE"),i=this.#d(e,"MAXSCORE");if(r!==null&&i!==null)return r>=i?"optimal":"suboptimal";let o=e.filter(a=>a.type==="response"&&a.correctResponse!==void 0&&a.correctResponse!==null);return o.length===0?"unscored":o.every(a=>{let l=a.correctResponse,c=a.value;return c==null?!1:Array.isArray(l)&&Array.isArray(c)?l.length===c.length&&l.every(d=>c.includes(d)):Array.isArray(l)||Array.isArray(c)?!1:l===c})?"optimal":"suboptimal"}#d(t,e){let r=t?.find(o=>o.identifier===e)?.value;if(r==null||Array.isArray(r))return null;let i=parseFloat(r.toString());return Number.isNaN(i)?null:i}};xe([p({type:String})],st.prototype,"identifier",void 0);xe([_()],st.prototype,"initContext",void 0);xe([_(),B({context:ut})],st.prototype,"qtiContext",void 0);xe([_(),T({context:pt,subscribe:!0})],st.prototype,"configContext",void 0);xe([_(),T({context:ot,subscribe:!0})],st.prototype,"_testContext",void 0);xe([_(),T({context:Lt,subscribe:!0})],st.prototype,"_sessionContext",void 0);xe([_(),B({context:z})],st.prototype,"computedContext",void 0);xe([p({type:Boolean,attribute:"auto-score-items"})],st.prototype,"autoScoreItems",void 0);var Na=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Xe=class extends C{_handleTestElementChange(t,e){e&&this.requestUpdate()}static{this.styles=q`
6351
+ `}};var xe=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},st=class extends C{#t;#e;constructor(){super(),this.identifier=void 0,this.initContext=[],this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}},this.configContext={},this.autoScoreItems=!1,this.#e=new Map,this.addEventListener("qti-assessment-test-connected",this.#a.bind(this)),this.addEventListener("qti-assessment-item-connected",this.#h.bind(this)),this.addEventListener("qti-interaction-changed",this.#s.bind(this)),this.addEventListener("qti-item-context-updated",this.#r.bind(this)),this.addEventListener("test-end-attempt",this.#i.bind(this)),this.addEventListener("test-update-outcome-variable",this.#o.bind(this))}#r(t){if(!t.detail?.responseProcessed)return;let e=t.detail.itemContext;if(!e?.identifier)return;let r=this.#u(e);this.#e.set(e.identifier,r);let n=this.computedItemFor(e.identifier),i=Number(e.variables?.find(s=>s.identifier==="numAttempts")?.value)||0;this.afterAttemptEnded(t.composedPath()[0]?.closest("qti-assessment-item"),n,this.#l(i,r,n?.maxAttempts))}afterAttemptEnded(t,e,r){}computedItemFor(t){return this.computedContext?.testParts?.flatMap(e=>e.sections).flatMap(e=>e.items).find(e=>e.identifier===t)}#n(t){return t?this.#t?.querySelector(`qti-assessment-item-ref[identifier="${t}"]`)?.assessmentItem??void 0:void 0}get activeAssessmentItem(){if(!(!this.#t||!this._sessionContext?.navItemRefId))return this.#t.querySelector(`qti-assessment-item-ref[identifier="${this._sessionContext.navItemRefId}"]`)?.assessmentItem}#i(t){let e=this.activeAssessmentItem;if(!e)return;let r=this.configContext?.reportValidityAfterScoring===!0;e.processResponse(!0,r)}#o(t){let e=this.#n(t.detail?.assessmentItemRefId);e&&e.setOutcomeVariable(t.detail.outcomeVariableId,t.detail.value)}#s(t){if(this.autoScoreItems){let e=t.composedPath()[0].closest("qti-assessment-item");if(!e)return;let r=e.variables.find(n=>n.identifier==="SCORE");if(r&&r.externalScored===null&&e.adaptive==="false"){let n=this.configContext?.reportValidityAfterScoring===!0;e.processResponse(!0,n)}}}render(){return b`<slot></slot>`}#a(t){if(this.#t=t.detail,this.#e.clear(),!this.qtiContext.QTI_CONTEXT?.testIdentifier){let n=this.qtiContext.QTI_CONTEXT||{testIdentifier:"",candidateIdentifier:"not set",environmentIdentifier:"default"};this.qtiContext={QTI_CONTEXT:{...n,testIdentifier:this.#t.identifier,environmentIdentifier:n.environmentIdentifier||"default"}}}this.#t.querySelectorAll('qti-context-declaration[identifier="QTI_CONTEXT"]').forEach(n=>{let i=this.#c(n);Object.keys(i).length>0&&(this.qtiContext={QTI_CONTEXT:{...i,...this.qtiContext.QTI_CONTEXT}})});let r=Array.from(this.#t?.querySelectorAll("qti-test-part")||[]);this.computedContext={identifier:this.#t.identifier,title:this.#t.title,view:this._sessionContext?.view,testParts:r.map(n=>{let i=[...n.querySelectorAll("qti-assessment-section")],s=n.querySelector(":scope > qti-item-session-control"),a=s?s.allowSkipping:!0,l=s?s.maxAttempts:1,c=s?s.showFeedback:!1,d=s?s.showSolution:!1;return{active:!1,identifier:n.identifier,navigationMode:n.navigationMode,submissionMode:n.submissionMode,allowSkipping:a,sections:i.map(h=>{let f=[...h.querySelectorAll("qti-assessment-item-ref")],m=h.querySelector(":scope > qti-item-session-control"),w=m?m.allowSkipping:a,x=m?m.maxAttempts:l,u=m?m.showFeedback:c,g=m?m.showSolution:d;return{active:!1,identifier:h.identifier,title:h.title,navigationMode:h.navigationMode,submissionMode:h.submissionMode,allowSkipping:w,items:f.map(y=>{let v=y.querySelector(":scope > qti-item-session-control"),I=v?v.allowSkipping:w,S=v?v.maxAttempts:x,E=v?v.showFeedback:u,k=v?v.showSolution:g;return{...this.initContext?.find(R=>R.identifier===y.identifier),active:!1,identifier:y.identifier,categories:y.category?y.category?.split(" "):[],href:y.href,variables:[],allowSkipping:I,maxAttempts:S,showFeedback:E,showSolution:k}})}})}})}}#c(t){let e={},r=t.querySelector("qti-default-value");return r&&r.querySelectorAll("qti-value[field-identifier]").forEach(i=>{let s=i.getAttribute("field-identifier"),a=i.getAttribute("base-type")||"string",l=i.textContent?.trim()||"";if(s){let c=l;switch(a){case"integer":c=parseInt(l,10);break;case"float":case"duration":c=parseFloat(l);break;case"boolean":c=l.toLowerCase()==="true";break;default:c=l;break}e[s]=c}}),e}#h(t){let e=t.detail;this.computedContext={...this.computedContext,testParts:this.computedContext.testParts.map(r=>({...r,sections:r.sections.map(n=>({...n,items:n.items.map(i=>{if(i.identifier!==e.parentElement.getAttribute("identifier"))return i;let a=e.querySelector("qti-outcome-declaration[identifier='SCORE']")?.getAttribute("externalScored"),l=e.querySelectorAll("qti-response-declaration"),c=Array.from(l).some(m=>m.querySelector("qti-correct-response")),d=Array.from(l).some(m=>{let w=m.querySelector("qti-mapping"),x=m.querySelector("qti-area-mapping");return w?.querySelector("qti-map-entry")||x?.querySelector("qti-area-map-entry")}),h=c||d,f=!!e.querySelector("qti-response-processing");return{...i,assessmentItemIdentifier:e.getAttribute("identifier"),label:e.getAttribute("label"),title:e.title,externalScored:a,adaptive:e.adaptive=="true"||!1,timeDependent:e.timeDependent=="true"||!1,variables:e.variables,hasCorrectResponse:h,hasResponseProcessing:f}})}))}))}}willUpdate(t){if(!this.computedContext)return;let e=1;this.computedContext={...this.computedContext,view:this._sessionContext?.view,testParts:this.computedContext.testParts.map(r=>({...r,active:this._sessionContext?.navPartId===r.identifier||!1,sections:r.sections.map(n=>({...n,active:this._sessionContext?.navSectionId===n.identifier||!1,completed:n.items.every(i=>this._testContext.items.find(s=>s.identifier===i.identifier)?.variables.find(s=>s.identifier==="completionStatus").value==="completed"),items:n.items.map(i=>{let s=this._testContext?.items.find(E=>E.identifier===i.identifier),a={...i,...s,...this.initContext?.find(E=>E.identifier===i.identifier)},l=a.variables?.find(E=>E.identifier=="SCORE")?.value,c=l==null?null:parseFloat(l?.toString()),d=a.variables?.find(E=>E.identifier==="completionStatus")?.value,h=a.variables?.find(E=>E.identifier==="RESPONSE")?.value||"",f=Number(a.variables?.find(E=>E.identifier==="numAttempts")?.value)||0,m=this._sessionContext?.navItemRefId===a.identifier||!1,w=this.#n(a.identifier)?.validate(!1)??!0,u=(s?.variables?.filter(E=>E.type==="response")||[]).every(E=>{if(E.value===void 0||E.value===null)return!0;let k;switch(E.baseType){case"integer":case"float":case"duration":k="0";break;case"boolean":k="false";break;default:k="";break}let R=E.defaultValue??k;if(Array.isArray(E.value)){let N=Array.isArray(R)?R:[R];return E.value.length===N.length&&E.value.every((V,L)=>V===N[L])}return E.value===R}),g=i.categories.includes(this.configContext?.infoItemCategory)?null:e++,y=i.variables?.find(E=>E.identifier=="MAXSCORE")?.value,v=y==null?null:parseFloat(y?.toString()),I=this.#e.get(a.identifier);I===void 0&&(I=s?this.#u(s):"unscored",f>0&&this.#e.set(a.identifier,I));let S=this.#l(f,I,a.maxAttempts);return{...a,completionStatus:d,numAttempts:f,score:c,response:h,index:g,active:m,valid:w,isDefaultResponse:u,maxScore:v,done:S,optimal:this.#e.get(a.identifier)==="optimal"}})}))}))},this.dispatchEvent(new CustomEvent("qti-computed-context-updated",{detail:this.computedContext,bubbles:!0}))}#l(t,e,r){if(t===0)return!1;if(e!=="suboptimal")return!0;let n=r??1;return n>0&&t>=n}#u(t){let e=t.variables??[],r=this.#d(e,"SCORE"),n=this.#d(e,"MAXSCORE");if(r!==null&&n!==null)return r>=n?"optimal":"suboptimal";let i=e.filter(a=>a.type==="response"&&a.correctResponse!==void 0&&a.correctResponse!==null);return i.length===0?"unscored":i.every(a=>{let l=a.correctResponse,c=a.value;return c==null?!1:Array.isArray(l)&&Array.isArray(c)?l.length===c.length&&l.every(d=>c.includes(d)):Array.isArray(l)||Array.isArray(c)?!1:l===c})?"optimal":"suboptimal"}#d(t,e){let r=t?.find(i=>i.identifier===e)?.value;if(r==null||Array.isArray(r))return null;let n=parseFloat(r.toString());return Number.isNaN(n)?null:n}};xe([p({type:String})],st.prototype,"identifier",void 0);xe([_()],st.prototype,"initContext",void 0);xe([_(),B({context:ut})],st.prototype,"qtiContext",void 0);xe([_(),T({context:pt,subscribe:!0})],st.prototype,"configContext",void 0);xe([_(),T({context:it,subscribe:!0})],st.prototype,"_testContext",void 0);xe([_(),T({context:Lt,subscribe:!0})],st.prototype,"_sessionContext",void 0);xe([_(),B({context:z})],st.prototype,"computedContext",void 0);xe([p({type:Boolean,attribute:"auto-score-items"})],st.prototype,"autoScoreItems",void 0);var Na=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Xe=class extends C{_handleTestElementChange(t,e){e&&this.requestUpdate()}static{this.styles=q`
6352
6352
  :host {
6353
6353
  ${gt};
6354
6354
  }
6355
6355
  :host([disabled]) {
6356
6356
  ${bt};
6357
6357
  }
6358
- `}#t;constructor(){super(),this._internalDisabled=!0,this.#t=this.attachInternals(),this.#t.role="button",this.#t.ariaLabel="Next item",this.addEventListener("click",t=>{t.preventDefault(),this._internalDisabled||this._requestItem(this.sectionItems[this.itemIndex+1].identifier)})}connectedCallback(){super.connectedCallback(),this.checkDisabled()}willUpdate(t){if(!this.computedContext)return;let e=this.computedContext?.testParts.find(r=>r.active);e&&(this.sectionItems=e.sections.flatMap(r=>r.items),this.itemIndex=this.sectionItems.findIndex(r=>r.active),this.checkDisabled())}checkDisabled(){let t=this.computedContext?.testParts.find(a=>a.active);if(!t)return;let e=t.sections.find(a=>a.active),r=e?.navigationMode||t.navigationMode,i=e?.submissionMode||t.submissionMode,o=this.sectionItems[this.itemIndex],s=r==="linear"&&i==="individual";this._internalDisabled=!this.computedContext||this.itemIndex<0||this.itemIndex>=(this.sectionItems?.length??0)-1||s&&!o?.done}_requestItem(t){this.dispatchEvent(new CustomEvent("qti-request-navigation",{composed:!0,bubbles:!0,detail:{type:"item",id:t}}))}render(){return b`<slot></slot>`}};Na([p({type:Boolean,reflect:!0,attribute:"disabled"})],Xe.prototype,"_internalDisabled",void 0);Na([T({context:z,subscribe:!0})],Xe.prototype,"computedContext",void 0);Na([$("computedContext")],Xe.prototype,"_handleTestElementChange",null);var ln=["this"],ed=["+","-","!"],rd=["=","+","-","*","/","%","^","==","!=",">","<",">=","<=","||","&&","??","&","===","!==","|","|>"],$a={"!":0,":":0,",":0,")":0,"]":0,"}":0,"|>":1,"?":2,"??":3,"||":4,"&&":5,"|":6,"^":7,"&":8,"!=":9,"==":9,"!==":9,"===":9,">=":10,">":10,"<=":10,"<":10,"+":11,"-":11,"%":12,"/":12,"*":12,"(":13,"[":13,".":13,"{":13},dn=13;var Dp=["==","!=","<=",">=","||","&&","??","|>"],Np=["===","!=="],M;(function(n){n[n.STRING=1]="STRING",n[n.IDENTIFIER=2]="IDENTIFIER",n[n.DOT=3]="DOT",n[n.COMMA=4]="COMMA",n[n.COLON=5]="COLON",n[n.INTEGER=6]="INTEGER",n[n.DECIMAL=7]="DECIMAL",n[n.OPERATOR=8]="OPERATOR",n[n.GROUPER=9]="GROUPER",n[n.KEYWORD=10]="KEYWORD",n[n.ARROW=11]="ARROW"})(M||(M={}));var Bt=(n,t,e=0)=>({kind:n,value:t,precedence:e}),$p=n=>n===9||n===10||n===13||n===32,id=n=>n===95||n===36||(n&=-33,65<=n&&n<=90),Lp=n=>id(n)||Ti(n),Vp=n=>ln.indexOf(n)!==-1,zp=n=>n===34||n===39,Ti=n=>48<=n&&n<=57,jp=n=>n===43||n===45||n===42||n===47||n===33||n===38||n===37||n===60||n===61||n===62||n===63||n===94||n===124,Fp=n=>n===40||n===41||n===91||n===93||n===123||n===125,Bp=n=>n.replace(/\\(.)/g,(t,e)=>{switch(e){case"n":return`
6359
- `;case"r":return"\r";case"t":return" ";case"b":return"\b";case"f":return"\f";default:return e}}),hn=class{#t;#e=-1;#r=0;#i;constructor(t){this.#t=t,this.#o()}nextToken(){for(;$p(this.#i);)this.#o(!0);if(zp(this.#i))return this.#a();if(id(this.#i))return this.#c();if(Ti(this.#i))return this.#h();if(this.#i===46)return this.#l();if(this.#i===44)return this.#u();if(this.#i===58)return this.#d();if(jp(this.#i))return this.#m();if(Fp(this.#i))return this.#b();if(this.#o(),this.#i!==void 0)throw new Error(`Expected end of input, got ${this.#i}`)}#o(t){this.#e++,this.#e<this.#t.length?(this.#i=this.#t.charCodeAt(this.#e),t===!0&&(this.#r=this.#e)):this.#i=void 0}#n(t=0){let e=this.#t.substring(this.#r,this.#e+t);return t===0&&this.#s(),e}#s(){this.#r=this.#e}#a(){let t="unterminated string",e=this.#i;for(this.#o(!0);this.#i!==e;){if(this.#i===void 0)throw new Error(t);if(this.#i===92&&(this.#o(),this.#i===void 0))throw new Error(t);this.#o()}let r=Bt(M.STRING,Bp(this.#n()));return this.#o(),r}#c(){do this.#o();while(Lp(this.#i));let t=this.#n(),e=Vp(t)?M.KEYWORD:M.IDENTIFIER;return Bt(e,t)}#h(){do this.#o();while(Ti(this.#i));return this.#i===46?this.#l():Bt(M.INTEGER,this.#n())}#l(){return this.#o(),Ti(this.#i)?this.#p():(this.#s(),Bt(M.DOT,".",dn))}#u(){return this.#o(!0),Bt(M.COMMA,",")}#d(){return this.#o(!0),Bt(M.COLON,":")}#p(){do this.#o();while(Ti(this.#i));return Bt(M.DECIMAL,this.#n())}#m(){this.#o();let t=this.#n(2);if(Np.indexOf(t)!==-1)this.#o(),this.#o();else{if(t=this.#n(1),t==="=>")return this.#o(),Bt(M.ARROW,t);Dp.indexOf(t)!==-1&&this.#o()}return t=this.#n(),Bt(M.OPERATOR,t,$a[t])}#b(){let t=String.fromCharCode(this.#i),e=Bt(M.GROUPER,t,$a[t]);return this.#o(!0),e}};var La=(n,t)=>new Ri(n,t).parse(),Ri=class{#t;#e;#r;#i;#o;constructor(t,e){this.#e=new hn(t),this.#r=e}parse(){return this.#n(),this.#s()}#n(t,e){if(!this._matches(t,e))throw new Error(`Expected kind ${t} (${e}), was ${this.#i?.kind} (${this.#i?.value})`);let r=this.#e.nextToken();this.#i=r,this.#t=r?.kind,this.#o=r?.value}_matches(t,e){return!(t&&this.#t!==t||e&&this.#o!==e)}#s(){if(!this.#i)return this.#r.empty();let t=this.#l();return t===void 0?void 0:this.#a(t,0)}#a(t,e){if(t===void 0)throw new Error("Expected left to be defined.");for(;this.#i;)if(this._matches(M.GROUPER,"(")){let r=this.#y();t=this.#r.invoke(t,void 0,r)}else if(this._matches(M.GROUPER,"[")){let r=this.#q();t=this.#r.index(t,r)}else if(this._matches(M.DOT)){this.#n();let r=this.#l();t=this.#c(t,r)}else{if(this._matches(M.KEYWORD))break;if(this._matches(M.OPERATOR)&&this.#i.precedence>=e)t=this.#o==="?"?this.#u(t):this.#h(t,this.#i);else break}return t}#c(t,e){if(e===void 0)throw new Error("expected identifier");if(e.type==="ID")return this.#r.getter(t,e.value);if(e.type==="Invoke"&&e.receiver.type==="ID"){let r=e.receiver;return this.#r.invoke(t,r.value,e.arguments)}else throw new Error(`expected identifier: ${e}`)}#h(t,e){if(rd.indexOf(e.value)===-1)throw new Error(`unknown operator: ${e.value}`);this.#n();let r=this.#l();for(;(this.#t===M.OPERATOR||this.#t===M.DOT||this.#t===M.GROUPER)&&this.#i.precedence>e.precedence;)r=this.#a(r,this.#i.precedence);return this.#r.binary(t,e.value,r)}#l(){if(this._matches(M.OPERATOR)){let t=this.#o;if(this.#n(),t==="+"||t==="-"){if(this._matches(M.INTEGER))return this.#w(t);if(this._matches(M.DECIMAL))return this.#x(t)}if(ed.indexOf(t)===-1)throw new Error(`unexpected token: ${t}`);let e=this.#a(this.#d(),dn);return this.#r.unary(t,e)}return this.#d()}#u(t){this.#n(M.OPERATOR,"?");let e=this.#s();this.#n(M.COLON);let r=this.#s();return this.#r.ternary(t,e,r)}#d(){switch(this.#t){case M.KEYWORD:let t=this.#o;if(t==="this")return this.#n(),this.#r.id(t);throw ln.indexOf(t)!==-1?new Error(`unexpected keyword: ${t}`):new Error(`unrecognized keyword: ${t}`);case M.IDENTIFIER:return this.#b();case M.STRING:return this.#C();case M.INTEGER:return this.#w();case M.DECIMAL:return this.#x();case M.GROUPER:return this.#o==="("?this.#v():this.#o==="{"?this.#m():this.#o==="["?this.#p():void 0;case M.COLON:throw new Error('unexpected token ":"');default:return}}#p(){let t=[];do{if(this.#n(),this._matches(M.GROUPER,"]"))break;t.push(this.#s())}while(this._matches(M.COMMA));return this.#n(M.GROUPER,"]"),this.#r.list(t)}#m(){let t={};do{if(this.#n(),this._matches(M.GROUPER,"}"))break;let e=this.#o;(this._matches(M.STRING)||this._matches(M.IDENTIFIER))&&this.#n(),this.#n(M.COLON),t[e]=this.#s()}while(this._matches(M.COMMA));return this.#n(M.GROUPER,"}"),this.#r.map(t)}#b(){let t=this.#o;if(t==="true")return this.#n(),this.#r.literal(!0);if(t==="false")return this.#n(),this.#r.literal(!1);if(t==="null")return this.#n(),this.#r.literal(null);if(t==="undefined")return this.#n(),this.#r.literal(void 0);let e=this.#f(),r=this.#y();return r?this.#r.invoke(e,void 0,r):e}#f(){if(!this._matches(M.IDENTIFIER))throw new Error(`expected identifier: ${this.#o}`);let t=this.#o;return this.#n(),this.#r.id(t)}#y(){if(!this._matches(M.GROUPER,"("))return;let t=[];do{if(this.#n(),this._matches(M.GROUPER,")"))break;let e=this.#s();t.push(e)}while(this._matches(M.COMMA));return this.#n(M.GROUPER,")"),t}#q(){this.#n();let t=this.#s();return this.#n(M.GROUPER,"]"),t}#v(){let t=this.#y();if(this._matches(M.ARROW)){this.#n();let e=this.#s(),r=t?.map(i=>i.value)??[];return this.#r.arrowFunction(r,e)}else return this.#r.paren(t[0])}#C(){let t=this.#r.literal(this.#o);return this.#n(),t}#w(t=""){let e=this.#r.literal(parseInt(`${t}${this.#o}`,10));return this.#n(),e}#x(t=""){let e=this.#r.literal(parseFloat(`${t}${this.#o}`));return this.#n(),e}};var{hasOwn:od,fromEntries:Up}=Object,Hp={"+":(n,t)=>n+t,"-":(n,t)=>n-t,"*":(n,t)=>n*t,"/":(n,t)=>n/t,"%":(n,t)=>n%t,"==":(n,t)=>n==t,"!=":(n,t)=>n!=t,"===":(n,t)=>n===t,"!==":(n,t)=>n!==t,">":(n,t)=>n>t,">=":(n,t)=>n>=t,"<":(n,t)=>n<t,"<=":(n,t)=>n<=t,"||":(n,t)=>n||t,"&&":(n,t)=>n&&t,"??":(n,t)=>n??t,"|":(n,t)=>t(n),"|>":(n,t)=>t(n)},Wp={"+":n=>n,"-":n=>-n,"!":n=>!n},pn=class{empty(){return{type:"Empty",evaluate(t){return t},getIds(t){return t}}}literal(t){return{type:"Literal",value:t,evaluate(e){return this.value},getIds(e){return e}}}id(t){return{type:"ID",value:t,evaluate(e){return this.value==="this"?e:e?.[this.value]},getIds(e){return e.push(this.value),e}}}unary(t,e){let r=Wp[t];return{type:"Unary",operator:t,child:e,evaluate(i){return r(this.child.evaluate(i))},getIds(i){return this.child.getIds(i)}}}binary(t,e,r){let i=Hp[e];return{type:"Binary",operator:e,left:t,right:r,evaluate(o){if(this.operator==="="){if(this.left.type!=="ID"&&this.left.type!=="Getter"&&this.left.type!=="Index")throw new Error(`Invalid assignment target: ${this.left}`);let s=this.right.evaluate(o),a,l;return this.left.type==="Getter"?(a=this.left.receiver.evaluate(o),l=this.left.name):this.left.type==="Index"?(a=this.left.receiver.evaluate(o),l=this.left.argument.evaluate(o)):this.left.type==="ID"&&(a=o,l=this.left.value),a===void 0?void 0:a[l]=s}return i(this.left.evaluate(o),this.right.evaluate(o))},getIds(o){return this.left.getIds(o),this.right.getIds(o),o}}}getter(t,e){return{type:"Getter",receiver:t,name:e,evaluate(r){return this.receiver.evaluate(r)?.[this.name]},getIds(r){return this.receiver.getIds(r),r}}}invoke(t,e,r){if(e!=null&&typeof e!="string")throw new Error("method not a string");return{type:"Invoke",receiver:t,method:e,arguments:r,evaluate(i){let o=this.receiver.evaluate(i),s=this.method?o:i?.this??i,a=this.method?o?.[e]:o,c=(this.arguments??[]).map(d=>d?.evaluate(i));return a?.apply?.(s,c)},getIds(i){return this.receiver.getIds(i),this.arguments?.forEach(o=>o?.getIds(i)),i}}}paren(t){return t}index(t,e){return{type:"Index",receiver:t,argument:e,evaluate(r){return this.receiver.evaluate(r)?.[this.argument.evaluate(r)]},getIds(r){return this.receiver.getIds(r),r}}}ternary(t,e,r){return{type:"Ternary",condition:t,trueExpr:e,falseExpr:r,evaluate(i){return this.condition.evaluate(i)?this.trueExpr.evaluate(i):this.falseExpr.evaluate(i)},getIds(i){return this.condition.getIds(i),this.trueExpr.getIds(i),this.falseExpr.getIds(i),i}}}map(t){return{type:"Map",entries:t,evaluate(e){let r={};if(t&&this.entries)for(let i in t){let o=this.entries[i];o&&(r[i]=o.evaluate(e))}return r},getIds(e){if(t&&this.entries)for(let r in t){let i=this.entries[r];i&&i.getIds(e)}return e}}}list(t){return{type:"List",items:t,evaluate(e){return this.items?.map(r=>r?.evaluate(e))},getIds(e){return this.items?.forEach(r=>r?.getIds(e)),e}}}arrowFunction(t,e){return{type:"ArrowFunction",params:t,body:e,evaluate(r){let i=this.params,o=this.body;return function(...s){let a=Up(i.map((c,d)=>[c,s[d]])),l=new Proxy(r??{},{set(c,d,h){return od(a,d)&&(a[d]=h),c[d]=h},get(c,d){return od(a,d)?a[d]:c[d]}});return o.evaluate(l)}},getIds(r){return this.body.getIds(r).filter(i=>!this.params.includes(i))}}}};var Va=null,nd={boundAttributeSuffix:K.M,marker:K.P,markerMatch:K.A,HTML_RESULT:K.C,getTemplateHtml:K.L,overrideDirectiveResolve:(n,t)=>class extends n{_$AS(e,r){return t(this,r)}},patchDirectiveResolve:(n,t)=>{if(n.prototype._$AS.name!==t.name){Va??=n.prototype._$AS.name;for(let e=n.prototype;e!==Object.prototype;e=Object.getPrototypeOf(e))if(e.hasOwnProperty(Va))return void(e[Va]=t);throw Error("Internal error: It is possible that both dev mode and production mode Lit was mixed together during SSR. Please comment on the issue: https://github.com/lit/lit/issues/4527")}},setDirectiveClass(n,t){n._$litDirective$=t},getAttributePartCommittedValue:(n,t,e)=>{let r=Z;return n.j=i=>r=i,n._$AI(t,n,e),r},connectedDisconnectable:n=>({...n,_$AU:!0}),resolveDirective:K.V,AttributePart:K.H,PropertyPart:K.B,BooleanAttributePart:K.N,EventPart:K.U,ElementPart:K.F,TemplateInstance:K.R,isIterable:K.D,ChildPart:K.I};var{AttributePart:Qp,PropertyPart:Gp,BooleanAttributePart:Xp,EventPart:Yp}=nd,ja=new pn,za=new Map,sd=n=>n.replace(/-(-|\w)/g,(t,e)=>e.toUpperCase()),un=(n,t)=>{let e=za.get(n);if(e===void 0){if(za.has(n))return;if(n=n.trim(),n.startsWith("{{")&&n.endsWith("}}")){let r=n.substring(2,n.length-2).trim();e=new Ri(r,ja).parse(),za.set(n,e)}}return e?.evaluate(t)},Kp=(n,t,e,r)=>{let i=n.getAttribute("if");if(i!==null&&un(i,t))return mn(n,t,e,r)},ad=/(?<!\\){{(.*?)(?:(?<!\\)}})/g,cd=n=>/(?:\\{{)|(?:\\}})/g.test(n),Oi=n=>n.replaceAll(/\\{{/g,"{{").replace(/\\}}/g,"}}"),Jp=(n,t,e,r)=>{let i=n.getAttribute("repeat");if(i!==null){let o=un(i,t);if(!o[Symbol.iterator])return P;let s=Pi(n),a=-1,l=[];for(let c of o){a++;let d=Object.create(t);d.item=c,d.index=a,d.this=t.this??t;let h=[];for(let m of s.parts){let w=m.update(d,e,r);m.type===1?h.push(...w):h.push(w)}let f={_$litType$:s,values:h};l.push(f)}return l}},dd={if:Kp,repeat:Jp},Ut=(n,t=dd,e={},r)=>{let o=Pi(n).renderers;if(r){let a=Pi(r).renderers,l=o.super;l!==void 0?e={...o,...e,super:(c,d,h)=>(h={...a,...h,super:(f,m,w)=>mn(r,f,m,w)},l(c,d,h))}:(e={...a,...o,...e},n=r)}else e={...o,...e};return s=>mn(n,s,t,e)};var mn=(n,t,e=dd,r={})=>{let i=Pi(n),o=[];for(let a of i.parts){let l=a.update(t,e,r);a.type===1?o.push(...l):o.push(l)}return{_$litType$:i,values:o}},ld=new Map,Pi=n=>{let t=ld.get(n);return t===void 0&&ld.set(n,t=Zp(n)),t},Zp=n=>{let t={h:void 0,el:n.cloneNode(!0),parts:[],renderers:{}},e=document.createTreeWalker(t.el.content,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT|NodeFilter.SHOW_COMMENT),r=e.currentNode,i=-1,o=[];for(;(r=e.nextNode())!==null;)if(r.nodeType===Node.COMMENT_NODE)i++;else if(r.nodeType===Node.ELEMENT_NODE){i++;let s=r;if(s.tagName==="TEMPLATE"){let l=s.getAttribute("type"),c=s.getAttribute("name"),d=s.getAttribute("call");if(d!==null||l!==null||c!==null){s.parentNode.insertBefore(document.createComment(""),s),o.push(s);let h;if(d!==null){let f=d.trim(),m=f.startsWith("{{")&&f.endsWith("}}");h=(w,x,u)=>{let g=s.getAttribute("data"),y=g===null?void 0:un(g,w);return(m?un(f,w):u[d])?.(y,x,u)}}else l!==null?h=(f,m,w)=>{let x=m[l];return x?.(s,f,m,w)}:(c==="super"?t.renderers.super=(f,m,w)=>{let x=w.super,u=Pi(s);return w={...w,...u.renderers},x(f,m,w)}:t.renderers[c]=(f,m,w)=>mn(s,f,m,w),h=(f,m,w)=>{let x=w[c];return x?.(f,m,w)});t.parts.push({type:2,index:i,update:h});continue}}let a=s.getAttributeNames();for(let l of a){let c=s.getAttribute(l),d=c.split(ad);if(d.length===1){cd(c)&&s.setAttribute(l,Oi(c));continue}s.removeAttribute(l);let h=l,f=Qp,m=l[0];m==="."?(h=sd(l.substring(1)),f=Gp):m==="?"?(h=l.substring(1),f=Xp):m==="@"&&(h=sd(l.substring(1)),f=Yp);let w=[Oi(d[0])],x=[];for(let u=1;u<d.length;u+=2){let g=d[u];x.push(La(g,ja)),w.push(Oi(d[u+1]))}t.parts.push({type:1,index:i,name:h,strings:w,ctor:f,update:(u,g,y)=>x.map(v=>v.evaluate(u))})}}else if(r.nodeType===Node.TEXT_NODE){let s=r,a=s.textContent,l=a.split(ad);l.length>1?s.textContent=Oi(l[0]):cd(a)&&(s.textContent=Oi(a));for(let c=1;c<l.length;c+=2){let d=l[c],h=La(d,ja);t.parts.push({type:2,index:++i,update:(m,w)=>h.evaluate(m)});let f=new Text(l[c+1].replace("\\{{","{{"));s.parentNode.insertBefore(f,s.nextSibling),s.parentNode.insertBefore(document.createComment(""),s.nextSibling),s=f,e.currentNode=f}}for(let s of o)s.remove();return t};var tu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Mi=class extends C{#t;createRenderRoot(){return this}constructor(){super(),this.#t=this.attachInternals(),this.#t.ariaLabel="pagination"}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");this.myTemplate=Ut(t)}render(){if(!this.computedContext)return b``;let t=this.computedContext.testParts.flatMap(e=>e.sections.flatMap(r=>r.items));return b` ${t.map(e=>this.myTemplate({item:e,view:this.computedContext.view}))} `}};tu([T({context:z,subscribe:!0})],Mi.prototype,"computedContext",void 0);var Fa=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ye=class extends C{_handleTestElementChange(t,e){e&&this.requestUpdate()}static{this.styles=q`
6358
+ `}#t;constructor(){super(),this._internalDisabled=!0,this.#t=this.attachInternals(),this.#t.role="button",this.#t.ariaLabel="Next item",this.addEventListener("click",t=>{t.preventDefault(),this._internalDisabled||this._requestItem(this.sectionItems[this.itemIndex+1].identifier)})}connectedCallback(){super.connectedCallback(),this.checkDisabled()}willUpdate(t){if(!this.computedContext)return;let e=this.computedContext?.testParts.find(r=>r.active);e&&(this.sectionItems=e.sections.flatMap(r=>r.items),this.itemIndex=this.sectionItems.findIndex(r=>r.active),this.checkDisabled())}checkDisabled(){let t=this.computedContext?.testParts.find(a=>a.active);if(!t)return;let e=t.sections.find(a=>a.active),r=e?.navigationMode||t.navigationMode,n=e?.submissionMode||t.submissionMode,i=this.sectionItems[this.itemIndex],s=r==="linear"&&n==="individual";this._internalDisabled=!this.computedContext||this.itemIndex<0||this.itemIndex>=(this.sectionItems?.length??0)-1||s&&!i?.done}_requestItem(t){this.dispatchEvent(new CustomEvent("qti-request-navigation",{composed:!0,bubbles:!0,detail:{type:"item",id:t}}))}render(){return b`<slot></slot>`}};Na([p({type:Boolean,reflect:!0,attribute:"disabled"})],Xe.prototype,"_internalDisabled",void 0);Na([T({context:z,subscribe:!0})],Xe.prototype,"computedContext",void 0);Na([$("computedContext")],Xe.prototype,"_handleTestElementChange",null);var co=["this"],ed=["+","-","!"],rd=["=","+","-","*","/","%","^","==","!=",">","<",">=","<=","||","&&","??","&","===","!==","|","|>"],$a={"!":0,":":0,",":0,")":0,"]":0,"}":0,"|>":1,"?":2,"??":3,"||":4,"&&":5,"|":6,"^":7,"&":8,"!=":9,"==":9,"!==":9,"===":9,">=":10,">":10,"<=":10,"<":10,"+":11,"-":11,"%":12,"/":12,"*":12,"(":13,"[":13,".":13,"{":13},lo=13;var Mp=["==","!=","<=",">=","||","&&","??","|>"],Dp=["===","!=="],M;(function(o){o[o.STRING=1]="STRING",o[o.IDENTIFIER=2]="IDENTIFIER",o[o.DOT=3]="DOT",o[o.COMMA=4]="COMMA",o[o.COLON=5]="COLON",o[o.INTEGER=6]="INTEGER",o[o.DECIMAL=7]="DECIMAL",o[o.OPERATOR=8]="OPERATOR",o[o.GROUPER=9]="GROUPER",o[o.KEYWORD=10]="KEYWORD",o[o.ARROW=11]="ARROW"})(M||(M={}));var Bt=(o,t,e=0)=>({kind:o,value:t,precedence:e}),Np=o=>o===9||o===10||o===13||o===32,nd=o=>o===95||o===36||(o&=-33,65<=o&&o<=90),$p=o=>nd(o)||Rn(o),Lp=o=>co.indexOf(o)!==-1,Vp=o=>o===34||o===39,Rn=o=>48<=o&&o<=57,zp=o=>o===43||o===45||o===42||o===47||o===33||o===38||o===37||o===60||o===61||o===62||o===63||o===94||o===124,jp=o=>o===40||o===41||o===91||o===93||o===123||o===125,Fp=o=>o.replace(/\\(.)/g,(t,e)=>{switch(e){case"n":return`
6359
+ `;case"r":return"\r";case"t":return" ";case"b":return"\b";case"f":return"\f";default:return e}}),ho=class{#t;#e=-1;#r=0;#n;constructor(t){this.#t=t,this.#i()}nextToken(){for(;Np(this.#n);)this.#i(!0);if(Vp(this.#n))return this.#a();if(nd(this.#n))return this.#c();if(Rn(this.#n))return this.#h();if(this.#n===46)return this.#l();if(this.#n===44)return this.#u();if(this.#n===58)return this.#d();if(zp(this.#n))return this.#m();if(jp(this.#n))return this.#b();if(this.#i(),this.#n!==void 0)throw new Error(`Expected end of input, got ${this.#n}`)}#i(t){this.#e++,this.#e<this.#t.length?(this.#n=this.#t.charCodeAt(this.#e),t===!0&&(this.#r=this.#e)):this.#n=void 0}#o(t=0){let e=this.#t.substring(this.#r,this.#e+t);return t===0&&this.#s(),e}#s(){this.#r=this.#e}#a(){let t="unterminated string",e=this.#n;for(this.#i(!0);this.#n!==e;){if(this.#n===void 0)throw new Error(t);if(this.#n===92&&(this.#i(),this.#n===void 0))throw new Error(t);this.#i()}let r=Bt(M.STRING,Fp(this.#o()));return this.#i(),r}#c(){do this.#i();while($p(this.#n));let t=this.#o(),e=Lp(t)?M.KEYWORD:M.IDENTIFIER;return Bt(e,t)}#h(){do this.#i();while(Rn(this.#n));return this.#n===46?this.#l():Bt(M.INTEGER,this.#o())}#l(){return this.#i(),Rn(this.#n)?this.#p():(this.#s(),Bt(M.DOT,".",lo))}#u(){return this.#i(!0),Bt(M.COMMA,",")}#d(){return this.#i(!0),Bt(M.COLON,":")}#p(){do this.#i();while(Rn(this.#n));return Bt(M.DECIMAL,this.#o())}#m(){this.#i();let t=this.#o(2);if(Dp.indexOf(t)!==-1)this.#i(),this.#i();else{if(t=this.#o(1),t==="=>")return this.#i(),Bt(M.ARROW,t);Mp.indexOf(t)!==-1&&this.#i()}return t=this.#o(),Bt(M.OPERATOR,t,$a[t])}#b(){let t=String.fromCharCode(this.#n),e=Bt(M.GROUPER,t,$a[t]);return this.#i(!0),e}};var La=(o,t)=>new On(o,t).parse(),On=class{#t;#e;#r;#n;#i;constructor(t,e){this.#e=new ho(t),this.#r=e}parse(){return this.#o(),this.#s()}#o(t,e){if(!this._matches(t,e))throw new Error(`Expected kind ${t} (${e}), was ${this.#n?.kind} (${this.#n?.value})`);let r=this.#e.nextToken();this.#n=r,this.#t=r?.kind,this.#i=r?.value}_matches(t,e){return!(t&&this.#t!==t||e&&this.#i!==e)}#s(){if(!this.#n)return this.#r.empty();let t=this.#l();return t===void 0?void 0:this.#a(t,0)}#a(t,e){if(t===void 0)throw new Error("Expected left to be defined.");for(;this.#n;)if(this._matches(M.GROUPER,"(")){let r=this.#y();t=this.#r.invoke(t,void 0,r)}else if(this._matches(M.GROUPER,"[")){let r=this.#q();t=this.#r.index(t,r)}else if(this._matches(M.DOT)){this.#o();let r=this.#l();t=this.#c(t,r)}else{if(this._matches(M.KEYWORD))break;if(this._matches(M.OPERATOR)&&this.#n.precedence>=e)t=this.#i==="?"?this.#u(t):this.#h(t,this.#n);else break}return t}#c(t,e){if(e===void 0)throw new Error("expected identifier");if(e.type==="ID")return this.#r.getter(t,e.value);if(e.type==="Invoke"&&e.receiver.type==="ID"){let r=e.receiver;return this.#r.invoke(t,r.value,e.arguments)}else throw new Error(`expected identifier: ${e}`)}#h(t,e){if(rd.indexOf(e.value)===-1)throw new Error(`unknown operator: ${e.value}`);this.#o();let r=this.#l();for(;(this.#t===M.OPERATOR||this.#t===M.DOT||this.#t===M.GROUPER)&&this.#n.precedence>e.precedence;)r=this.#a(r,this.#n.precedence);return this.#r.binary(t,e.value,r)}#l(){if(this._matches(M.OPERATOR)){let t=this.#i;if(this.#o(),t==="+"||t==="-"){if(this._matches(M.INTEGER))return this.#w(t);if(this._matches(M.DECIMAL))return this.#x(t)}if(ed.indexOf(t)===-1)throw new Error(`unexpected token: ${t}`);let e=this.#a(this.#d(),lo);return this.#r.unary(t,e)}return this.#d()}#u(t){this.#o(M.OPERATOR,"?");let e=this.#s();this.#o(M.COLON);let r=this.#s();return this.#r.ternary(t,e,r)}#d(){switch(this.#t){case M.KEYWORD:let t=this.#i;if(t==="this")return this.#o(),this.#r.id(t);throw co.indexOf(t)!==-1?new Error(`unexpected keyword: ${t}`):new Error(`unrecognized keyword: ${t}`);case M.IDENTIFIER:return this.#b();case M.STRING:return this.#C();case M.INTEGER:return this.#w();case M.DECIMAL:return this.#x();case M.GROUPER:return this.#i==="("?this.#v():this.#i==="{"?this.#m():this.#i==="["?this.#p():void 0;case M.COLON:throw new Error('unexpected token ":"');default:return}}#p(){let t=[];do{if(this.#o(),this._matches(M.GROUPER,"]"))break;t.push(this.#s())}while(this._matches(M.COMMA));return this.#o(M.GROUPER,"]"),this.#r.list(t)}#m(){let t={};do{if(this.#o(),this._matches(M.GROUPER,"}"))break;let e=this.#i;(this._matches(M.STRING)||this._matches(M.IDENTIFIER))&&this.#o(),this.#o(M.COLON),t[e]=this.#s()}while(this._matches(M.COMMA));return this.#o(M.GROUPER,"}"),this.#r.map(t)}#b(){let t=this.#i;if(t==="true")return this.#o(),this.#r.literal(!0);if(t==="false")return this.#o(),this.#r.literal(!1);if(t==="null")return this.#o(),this.#r.literal(null);if(t==="undefined")return this.#o(),this.#r.literal(void 0);let e=this.#f(),r=this.#y();return r?this.#r.invoke(e,void 0,r):e}#f(){if(!this._matches(M.IDENTIFIER))throw new Error(`expected identifier: ${this.#i}`);let t=this.#i;return this.#o(),this.#r.id(t)}#y(){if(!this._matches(M.GROUPER,"("))return;let t=[];do{if(this.#o(),this._matches(M.GROUPER,")"))break;let e=this.#s();t.push(e)}while(this._matches(M.COMMA));return this.#o(M.GROUPER,")"),t}#q(){this.#o();let t=this.#s();return this.#o(M.GROUPER,"]"),t}#v(){let t=this.#y();if(this._matches(M.ARROW)){this.#o();let e=this.#s(),r=t?.map(n=>n.value)??[];return this.#r.arrowFunction(r,e)}else return this.#r.paren(t[0])}#C(){let t=this.#r.literal(this.#i);return this.#o(),t}#w(t=""){let e=this.#r.literal(parseInt(`${t}${this.#i}`,10));return this.#o(),e}#x(t=""){let e=this.#r.literal(parseFloat(`${t}${this.#i}`));return this.#o(),e}};var{hasOwn:id,fromEntries:Bp}=Object,Up={"+":(o,t)=>o+t,"-":(o,t)=>o-t,"*":(o,t)=>o*t,"/":(o,t)=>o/t,"%":(o,t)=>o%t,"==":(o,t)=>o==t,"!=":(o,t)=>o!=t,"===":(o,t)=>o===t,"!==":(o,t)=>o!==t,">":(o,t)=>o>t,">=":(o,t)=>o>=t,"<":(o,t)=>o<t,"<=":(o,t)=>o<=t,"||":(o,t)=>o||t,"&&":(o,t)=>o&&t,"??":(o,t)=>o??t,"|":(o,t)=>t(o),"|>":(o,t)=>t(o)},Hp={"+":o=>o,"-":o=>-o,"!":o=>!o},po=class{empty(){return{type:"Empty",evaluate(t){return t},getIds(t){return t}}}literal(t){return{type:"Literal",value:t,evaluate(e){return this.value},getIds(e){return e}}}id(t){return{type:"ID",value:t,evaluate(e){return this.value==="this"?e:e?.[this.value]},getIds(e){return e.push(this.value),e}}}unary(t,e){let r=Hp[t];return{type:"Unary",operator:t,child:e,evaluate(n){return r(this.child.evaluate(n))},getIds(n){return this.child.getIds(n)}}}binary(t,e,r){let n=Up[e];return{type:"Binary",operator:e,left:t,right:r,evaluate(i){if(this.operator==="="){if(this.left.type!=="ID"&&this.left.type!=="Getter"&&this.left.type!=="Index")throw new Error(`Invalid assignment target: ${this.left}`);let s=this.right.evaluate(i),a,l;return this.left.type==="Getter"?(a=this.left.receiver.evaluate(i),l=this.left.name):this.left.type==="Index"?(a=this.left.receiver.evaluate(i),l=this.left.argument.evaluate(i)):this.left.type==="ID"&&(a=i,l=this.left.value),a===void 0?void 0:a[l]=s}return n(this.left.evaluate(i),this.right.evaluate(i))},getIds(i){return this.left.getIds(i),this.right.getIds(i),i}}}getter(t,e){return{type:"Getter",receiver:t,name:e,evaluate(r){return this.receiver.evaluate(r)?.[this.name]},getIds(r){return this.receiver.getIds(r),r}}}invoke(t,e,r){if(e!=null&&typeof e!="string")throw new Error("method not a string");return{type:"Invoke",receiver:t,method:e,arguments:r,evaluate(n){let i=this.receiver.evaluate(n),s=this.method?i:n?.this??n,a=this.method?i?.[e]:i,c=(this.arguments??[]).map(d=>d?.evaluate(n));return a?.apply?.(s,c)},getIds(n){return this.receiver.getIds(n),this.arguments?.forEach(i=>i?.getIds(n)),n}}}paren(t){return t}index(t,e){return{type:"Index",receiver:t,argument:e,evaluate(r){return this.receiver.evaluate(r)?.[this.argument.evaluate(r)]},getIds(r){return this.receiver.getIds(r),r}}}ternary(t,e,r){return{type:"Ternary",condition:t,trueExpr:e,falseExpr:r,evaluate(n){return this.condition.evaluate(n)?this.trueExpr.evaluate(n):this.falseExpr.evaluate(n)},getIds(n){return this.condition.getIds(n),this.trueExpr.getIds(n),this.falseExpr.getIds(n),n}}}map(t){return{type:"Map",entries:t,evaluate(e){let r={};if(t&&this.entries)for(let n in t){let i=this.entries[n];i&&(r[n]=i.evaluate(e))}return r},getIds(e){if(t&&this.entries)for(let r in t){let n=this.entries[r];n&&n.getIds(e)}return e}}}list(t){return{type:"List",items:t,evaluate(e){return this.items?.map(r=>r?.evaluate(e))},getIds(e){return this.items?.forEach(r=>r?.getIds(e)),e}}}arrowFunction(t,e){return{type:"ArrowFunction",params:t,body:e,evaluate(r){let n=this.params,i=this.body;return function(...s){let a=Bp(n.map((c,d)=>[c,s[d]])),l=new Proxy(r??{},{set(c,d,h){return id(a,d)&&(a[d]=h),c[d]=h},get(c,d){return id(a,d)?a[d]:c[d]}});return i.evaluate(l)}},getIds(r){return this.body.getIds(r).filter(n=>!this.params.includes(n))}}}};var Va=null,od={boundAttributeSuffix:K.M,marker:K.P,markerMatch:K.A,HTML_RESULT:K.C,getTemplateHtml:K.L,overrideDirectiveResolve:(o,t)=>class extends o{_$AS(e,r){return t(this,r)}},patchDirectiveResolve:(o,t)=>{if(o.prototype._$AS.name!==t.name){Va??=o.prototype._$AS.name;for(let e=o.prototype;e!==Object.prototype;e=Object.getPrototypeOf(e))if(e.hasOwnProperty(Va))return void(e[Va]=t);throw Error("Internal error: It is possible that both dev mode and production mode Lit was mixed together during SSR. Please comment on the issue: https://github.com/lit/lit/issues/4527")}},setDirectiveClass(o,t){o._$litDirective$=t},getAttributePartCommittedValue:(o,t,e)=>{let r=Z;return o.j=n=>r=n,o._$AI(t,o,e),r},connectedDisconnectable:o=>({...o,_$AU:!0}),resolveDirective:K.V,AttributePart:K.H,PropertyPart:K.B,BooleanAttributePart:K.N,EventPart:K.U,ElementPart:K.F,TemplateInstance:K.R,isIterable:K.D,ChildPart:K.I};var{AttributePart:Wp,PropertyPart:Qp,BooleanAttributePart:Gp,EventPart:Xp}=od,ja=new po,za=new Map,sd=o=>o.replace(/-(-|\w)/g,(t,e)=>e.toUpperCase()),uo=(o,t)=>{let e=za.get(o);if(e===void 0){if(za.has(o))return;if(o=o.trim(),o.startsWith("{{")&&o.endsWith("}}")){let r=o.substring(2,o.length-2).trim();e=new On(r,ja).parse(),za.set(o,e)}}return e?.evaluate(t)},Yp=(o,t,e,r)=>{let n=o.getAttribute("if");if(n!==null&&uo(n,t))return mo(o,t,e,r)},ad=/(?<!\\){{(.*?)(?:(?<!\\)}})/g,cd=o=>/(?:\\{{)|(?:\\}})/g.test(o),Pn=o=>o.replaceAll(/\\{{/g,"{{").replace(/\\}}/g,"}}"),Kp=(o,t,e,r)=>{let n=o.getAttribute("repeat");if(n!==null){let i=uo(n,t);if(!i[Symbol.iterator])return P;let s=Mn(o),a=-1,l=[];for(let c of i){a++;let d=Object.create(t);d.item=c,d.index=a,d.this=t.this??t;let h=[];for(let m of s.parts){let w=m.update(d,e,r);m.type===1?h.push(...w):h.push(w)}let f={_$litType$:s,values:h};l.push(f)}return l}},dd={if:Yp,repeat:Kp},Ut=(o,t=dd,e={},r)=>{let i=Mn(o).renderers;if(r){let a=Mn(r).renderers,l=i.super;l!==void 0?e={...i,...e,super:(c,d,h)=>(h={...a,...h,super:(f,m,w)=>mo(r,f,m,w)},l(c,d,h))}:(e={...a,...i,...e},o=r)}else e={...i,...e};return s=>mo(o,s,t,e)};var mo=(o,t,e=dd,r={})=>{let n=Mn(o),i=[];for(let a of n.parts){let l=a.update(t,e,r);a.type===1?i.push(...l):i.push(l)}return{_$litType$:n,values:i}},ld=new Map,Mn=o=>{let t=ld.get(o);return t===void 0&&ld.set(o,t=Jp(o)),t},Jp=o=>{let t={h:void 0,el:o.cloneNode(!0),parts:[],renderers:{}},e=document.createTreeWalker(t.el.content,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT|NodeFilter.SHOW_COMMENT),r=e.currentNode,n=-1,i=[];for(;(r=e.nextNode())!==null;)if(r.nodeType===Node.COMMENT_NODE)n++;else if(r.nodeType===Node.ELEMENT_NODE){n++;let s=r;if(s.tagName==="TEMPLATE"){let l=s.getAttribute("type"),c=s.getAttribute("name"),d=s.getAttribute("call");if(d!==null||l!==null||c!==null){s.parentNode.insertBefore(document.createComment(""),s),i.push(s);let h;if(d!==null){let f=d.trim(),m=f.startsWith("{{")&&f.endsWith("}}");h=(w,x,u)=>{let g=s.getAttribute("data"),y=g===null?void 0:uo(g,w);return(m?uo(f,w):u[d])?.(y,x,u)}}else l!==null?h=(f,m,w)=>{let x=m[l];return x?.(s,f,m,w)}:(c==="super"?t.renderers.super=(f,m,w)=>{let x=w.super,u=Mn(s);return w={...w,...u.renderers},x(f,m,w)}:t.renderers[c]=(f,m,w)=>mo(s,f,m,w),h=(f,m,w)=>{let x=w[c];return x?.(f,m,w)});t.parts.push({type:2,index:n,update:h});continue}}let a=s.getAttributeNames();for(let l of a){let c=s.getAttribute(l),d=c.split(ad);if(d.length===1){cd(c)&&s.setAttribute(l,Pn(c));continue}s.removeAttribute(l);let h=l,f=Wp,m=l[0];m==="."?(h=sd(l.substring(1)),f=Qp):m==="?"?(h=l.substring(1),f=Gp):m==="@"&&(h=sd(l.substring(1)),f=Xp);let w=[Pn(d[0])],x=[];for(let u=1;u<d.length;u+=2){let g=d[u];x.push(La(g,ja)),w.push(Pn(d[u+1]))}t.parts.push({type:1,index:n,name:h,strings:w,ctor:f,update:(u,g,y)=>x.map(v=>v.evaluate(u))})}}else if(r.nodeType===Node.TEXT_NODE){let s=r,a=s.textContent,l=a.split(ad);l.length>1?s.textContent=Pn(l[0]):cd(a)&&(s.textContent=Pn(a));for(let c=1;c<l.length;c+=2){let d=l[c],h=La(d,ja);t.parts.push({type:2,index:++n,update:(m,w)=>h.evaluate(m)});let f=new Text(l[c+1].replace("\\{{","{{"));s.parentNode.insertBefore(f,s.nextSibling),s.parentNode.insertBefore(document.createComment(""),s.nextSibling),s=f,e.currentNode=f}}for(let s of i)s.remove();return t};var Zp=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Dn=class extends C{#t;createRenderRoot(){return this}constructor(){super(),this.#t=this.attachInternals(),this.#t.ariaLabel="pagination"}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");this.myTemplate=Ut(t)}render(){if(!this.computedContext)return b``;let t=this.computedContext.testParts.flatMap(e=>e.sections.flatMap(r=>r.items));return b` ${t.map(e=>this.myTemplate({item:e,view:this.computedContext.view}))} `}};Zp([T({context:z,subscribe:!0})],Dn.prototype,"computedContext",void 0);var Fa=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Ye=class extends C{_handleTestElementChange(t,e){e&&this.requestUpdate()}static{this.styles=q`
6360
6360
  :host {
6361
6361
  ${gt};
6362
6362
  }
6363
6363
  :host([disabled]) {
6364
6364
  ${bt};
6365
6365
  }
6366
- `}constructor(){super(),this._internalDisabled=!0,this.addEventListener("click",t=>{t.preventDefault(),this._internalDisabled||this._requestItem(this.sectionItems[this.itemIndex-1].identifier)})}willUpdate(t){if(!this.computedContext)return;let e=this.computedContext?.testParts.find(r=>r.active);e&&(this.sectionItems=e.sections.flatMap(r=>r.items),this.itemIndex=this.sectionItems.findIndex(r=>r.active),this.checkDisabled())}checkDisabled(){let t=this.computedContext?.testParts.find(i=>i.active),r=t?.sections.find(i=>i.active)?.navigationMode||t?.navigationMode||"nonlinear";this._internalDisabled=r==="linear"||!this.computedContext||this.itemIndex===0||this.itemIndex===-1}_requestItem(t){this.dispatchEvent(new CustomEvent("qti-request-navigation",{composed:!0,bubbles:!0,detail:{type:"item",id:t}}))}render(){return b`<slot></slot>`}};Fa([p({type:Boolean,reflect:!0,attribute:"disabled"})],Ye.prototype,"_internalDisabled",void 0);Fa([T({context:z,subscribe:!0})],Ye.prototype,"computedContext",void 0);Fa([$("computedContext")],Ye.prototype,"_handleTestElementChange",null);var eu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Di=class extends C{render(){return b` <small><pre>${JSON.stringify(this.computedContext,null,2)}</pre></small> `}};eu([_(),T({context:z,subscribe:!0})],Di.prototype,"computedContext",void 0);var ru=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ni=class extends C{static{this.styles=q`
6366
+ `}constructor(){super(),this._internalDisabled=!0,this.addEventListener("click",t=>{t.preventDefault(),this._internalDisabled||this._requestItem(this.sectionItems[this.itemIndex-1].identifier)})}willUpdate(t){if(!this.computedContext)return;let e=this.computedContext?.testParts.find(r=>r.active);e&&(this.sectionItems=e.sections.flatMap(r=>r.items),this.itemIndex=this.sectionItems.findIndex(r=>r.active),this.checkDisabled())}checkDisabled(){let t=this.computedContext?.testParts.find(n=>n.active),r=t?.sections.find(n=>n.active)?.navigationMode||t?.navigationMode||"nonlinear";this._internalDisabled=r==="linear"||!this.computedContext||this.itemIndex===0||this.itemIndex===-1}_requestItem(t){this.dispatchEvent(new CustomEvent("qti-request-navigation",{composed:!0,bubbles:!0,detail:{type:"item",id:t}}))}render(){return b`<slot></slot>`}};Fa([p({type:Boolean,reflect:!0,attribute:"disabled"})],Ye.prototype,"_internalDisabled",void 0);Fa([T({context:z,subscribe:!0})],Ye.prototype,"computedContext",void 0);Fa([$("computedContext")],Ye.prototype,"_handleTestElementChange",null);var tu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Nn=class extends C{render(){return b` <small><pre>${JSON.stringify(this.computedContext,null,2)}</pre></small> `}};tu([_(),T({context:z,subscribe:!0})],Nn.prototype,"computedContext",void 0);var eu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},$n=class extends C{static{this.styles=q`
6367
6367
  table {
6368
6368
  width: 100%;
6369
6369
  border-collapse: collapse;
@@ -6384,7 +6384,7 @@ div.full-correct-response-inline {
6384
6384
  margin-top: 20px;
6385
6385
  font-size: 16px;
6386
6386
  }
6387
- `}render(){let t=this.computedContext?.testParts.flatMap(o=>o.sections.flatMap(s=>s.items)).find(o=>o.active);if(!t||!t.variables)return b``;let e=t.variables.filter(o=>o.type==="response"),r=t.variables.filter(o=>o.type==="outcome"),i=(o,s)=>b`
6387
+ `}render(){let t=this.computedContext?.testParts.flatMap(i=>i.sections.flatMap(s=>s.items)).find(i=>i.active);if(!t||!t.variables)return b``;let e=t.variables.filter(i=>i.type==="response"),r=t.variables.filter(i=>i.type==="outcome"),n=(i,s)=>b`
6388
6388
  <h3>${s}</h3>
6389
6389
  <table>
6390
6390
  <thead>
@@ -6397,7 +6397,7 @@ div.full-correct-response-inline {
6397
6397
  </tr>
6398
6398
  </thead>
6399
6399
  <tbody>
6400
- ${o.map(a=>{let l=a.correctResponse?Array.isArray(a.correctResponse)?a.correctResponse.join(", "):a.correctResponse:"",c=a.mapping?.mapEntries?.map(h=>`${h.mapKey}=${h.mappedValue}pt`).join(", ")||"",d=a.areaMapping?.areaMapEntries?.map(h=>`${h.shape}(${h.coords})=${h.mappedValue}pt`).join(", ")||"";return b`
6400
+ ${i.map(a=>{let l=a.correctResponse?Array.isArray(a.correctResponse)?a.correctResponse.join(", "):a.correctResponse:"",c=a.mapping?.mapEntries?.map(h=>`${h.mapKey}=${h.mappedValue}pt`).join(", ")||"",d=a.areaMapping?.areaMapEntries?.map(h=>`${h.shape}(${h.coords})=${h.mappedValue}pt`).join(", ")||"";return b`
6401
6401
  <tr>
6402
6402
  <td>${a.identifier}</td>
6403
6403
  <td>${Array.isArray(a.value)?a.value.join(", "):a.value}</td>
@@ -6409,16 +6409,16 @@ div.full-correct-response-inline {
6409
6409
  </tbody>
6410
6410
  </table>
6411
6411
  `;return b`
6412
- ${i(e,"Response Variables")} ${i(r,"Outcome Variables")}
6413
- `}};ru([T({context:z,subscribe:!0})],Ni.prototype,"computedContext",void 0);var Ba=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ke=class extends C{createRenderRoot(){return this}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");if(!t){this.myTemplate=null;return}this.myTemplate=Ut(t)}#t(t){let i=(this.computedContext?.testParts.find(o=>o.active)).sections.flatMap(o=>o.items).find(o=>o.active)?.identifier;this.dispatchEvent(new CustomEvent("test-update-outcome-variable",{detail:{assessmentItemRefId:i,outcomeVariableId:"SCORE",value:t},bubbles:!0}))}render(){let t=this.computedContext?.testParts.flatMap(a=>a.sections.flatMap(l=>l.items)).find(a=>a.active);if(!t||!t.variables)return b``;let e=t.variables.find(a=>a.identifier=="MAXSCORE")?.value,r=t.variables.find(a=>a.identifier=="SCORE"),i=r?.value,o=r?.externalScored!=="human";if(!e||!r)return P;let s=[...Array(Number(e)+1).keys()];return b`${this.myTemplate?this.myTemplate({scores:s,score:i,disabled:o}):P}`}constructor(){super(),this.view="",this.disabled=!1,this.myTemplate=null,this.addEventListener("click",t=>{let e=t.target,r=parseFloat(e.value);e.tagName==="INPUT"&&this.#t(r)})}};Ba([p({type:String,attribute:"view"})],Ke.prototype,"view",void 0);Ba([p({type:Boolean})],Ke.prototype,"disabled",void 0);Ba([T({context:z,subscribe:!0})],Ke.prototype,"computedContext",void 0);var hd=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Mr=class extends C{constructor(){super(...arguments),this.view=null}render(){let t=this.computedContext?.testParts.flatMap(a=>a.sections.flatMap(l=>l.items)).find(a=>a.active);if(!t||!t.variables)return b``;if(t.category==="dep-informational")return b`<div>${this.dataset.informational}</div>`;let e=t?.variables.find(a=>a.identifier==="completionStatus")?.value,r=t?.variables.find(a=>a.identifier=="SCORE"),i=parseFloat(r?.value),o=t.externalScored;return b`<div>${e!=="completed"?this.dataset.textNoResponse:!o&&i!==void 0&&!Number.isNaN(i)?i>0?this.dataset.textCorrect:this.dataset.textIncorrect:o==="externalMachine"?Number.isNaN(i)||i===void 0?this.dataset.scoreUnknown:`We hebben je antwoord ${i===0?"geen punten":i==1?"\xE9\xE9n punt":`${i} punten`} gegeven. Je kunt je score zelf aanpassen als je denkt dat dat niet klopt.`:o==="human"?Number.isNaN(i)?"":"Deze score heb je zelf toegekend.":this.dataset.inProgress}</div>`}};hd([T({context:z,subscribe:!0})],Mr.prototype,"computedContext",void 0);hd([p({type:String,attribute:"view"})],Mr.prototype,"view",void 0);var iu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},$i=class extends C{#t;createRenderRoot(){return this}constructor(){super(),this.#t=this.attachInternals(),this.#t.ariaLabel="pagination"}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");this.myTemplate=Ut(t)}render(){if(!this.computedContext)return b``;let t=this.computedContext.testParts.flatMap(e=>e.sections);return b` ${t.map(e=>this.myTemplate({item:e}))} `}};iu([T({context:z,subscribe:!0})],$i.prototype,"computedContext",void 0);var ou=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Li=class extends C{static{this.styles=q`
6412
+ ${n(e,"Response Variables")} ${n(r,"Outcome Variables")}
6413
+ `}};eu([T({context:z,subscribe:!0})],$n.prototype,"computedContext",void 0);var Ba=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Ke=class extends C{createRenderRoot(){return this}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");if(!t){this.myTemplate=null;return}this.myTemplate=Ut(t)}#t(t){let n=(this.computedContext?.testParts.find(i=>i.active)).sections.flatMap(i=>i.items).find(i=>i.active)?.identifier;this.dispatchEvent(new CustomEvent("test-update-outcome-variable",{detail:{assessmentItemRefId:n,outcomeVariableId:"SCORE",value:t},bubbles:!0}))}render(){let t=this.computedContext?.testParts.flatMap(a=>a.sections.flatMap(l=>l.items)).find(a=>a.active);if(!t||!t.variables)return b``;let e=t.variables.find(a=>a.identifier=="MAXSCORE")?.value,r=t.variables.find(a=>a.identifier=="SCORE"),n=r?.value,i=r?.externalScored!=="human";if(!e||!r)return P;let s=[...Array(Number(e)+1).keys()];return b`${this.myTemplate?this.myTemplate({scores:s,score:n,disabled:i}):P}`}constructor(){super(),this.view="",this.disabled=!1,this.myTemplate=null,this.addEventListener("click",t=>{let e=t.target,r=parseFloat(e.value);e.tagName==="INPUT"&&this.#t(r)})}};Ba([p({type:String,attribute:"view"})],Ke.prototype,"view",void 0);Ba([p({type:Boolean})],Ke.prototype,"disabled",void 0);Ba([T({context:z,subscribe:!0})],Ke.prototype,"computedContext",void 0);var hd=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Mr=class extends C{constructor(){super(...arguments),this.view=null}render(){let t=this.computedContext?.testParts.flatMap(a=>a.sections.flatMap(l=>l.items)).find(a=>a.active);if(!t||!t.variables)return b``;if(t.category==="dep-informational")return b`<div>${this.dataset.informational}</div>`;let e=t?.variables.find(a=>a.identifier==="completionStatus")?.value,r=t?.variables.find(a=>a.identifier=="SCORE"),n=parseFloat(r?.value),i=t.externalScored;return b`<div>${e!=="completed"?this.dataset.textNoResponse:!i&&n!==void 0&&!Number.isNaN(n)?n>0?this.dataset.textCorrect:this.dataset.textIncorrect:i==="externalMachine"?Number.isNaN(n)||n===void 0?this.dataset.scoreUnknown:`We hebben je antwoord ${n===0?"geen punten":n==1?"\xE9\xE9n punt":`${n} punten`} gegeven. Je kunt je score zelf aanpassen als je denkt dat dat niet klopt.`:i==="human"?Number.isNaN(n)?"":"Deze score heb je zelf toegekend.":this.dataset.inProgress}</div>`}};hd([T({context:z,subscribe:!0})],Mr.prototype,"computedContext",void 0);hd([p({type:String,attribute:"view"})],Mr.prototype,"view",void 0);var ru=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Ln=class extends C{#t;createRenderRoot(){return this}constructor(){super(),this.#t=this.attachInternals(),this.#t.ariaLabel="pagination"}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");this.myTemplate=Ut(t)}render(){if(!this.computedContext)return b``;let t=this.computedContext.testParts.flatMap(e=>e.sections);return b` ${t.map(e=>this.myTemplate({item:e}))} `}};ru([T({context:z,subscribe:!0})],Ln.prototype,"computedContext",void 0);var nu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Vn=class extends C{static{this.styles=q`
6414
6414
  :host {
6415
6415
  ${gt};
6416
6416
  }
6417
6417
  :host([disabled]) {
6418
6418
  ${bt};
6419
6419
  }
6420
- `}#t(t){this.dispatchEvent(new CustomEvent("qti-request-navigation",{composed:!0,bubbles:!0,detail:{type:"section",id:t}}))}constructor(){super(),this.sectionId=null,this.addEventListener("click",()=>this.#t(this.sectionId))}render(){return b` <slot></slot> `}};ou([p({type:String,attribute:"section-id"})],Li.prototype,"sectionId",void 0);var Ua=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Je=class extends C{constructor(){super(...arguments),this.debug=!1,this.stampContext={view:"candidate",activeItem:{},activeSection:{items:[]},activeTestpart:{items:[],sections:[]},test:{}}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");if(!t){this.myTemplate=null;return}this.myTemplate=Ut(t)}willUpdate(t){if(!this.computedContext)return;let e=this.computedContext.testParts.find(h=>h.active),r=e?.sections.find(h=>h.active),i=r?.items.find(h=>h.active),{variables:o,...s}=i||{};if(!e||!r||!i)return;let a={...e,items:e.sections.flatMap(h=>h.items.map(({variables:f,...m})=>m)),sections:e.sections.map(h=>({...h,items:h.items.map(({variables:f,...m})=>m)}))},l={...r,items:r.items.map(({variables:h,...f})=>f)},{testParts:c,...d}=this.computedContext;this.stampContext={view:this.computedContext.view,activeItem:s,activeSection:l,activeTestpart:a,test:d},this.dispatchEvent(new CustomEvent("qti-stamp-context-updated",{detail:this.stampContext,bubbles:!0}))}render(){return b` ${this.debug?b`<small><pre>${JSON.stringify(this.stampContext,null,2)}</pre></small>`:P}
6421
- ${this.myTemplate?this.myTemplate(this.stampContext):P}`}};Ua([p({type:Boolean,reflect:!0})],Je.prototype,"debug",void 0);Ua([_(),T({context:z,subscribe:!0})],Je.prototype,"computedContext",void 0);Ua([_()],Je.prototype,"stampContext",void 0);var Vi=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},fn,Ht=class extends C{constructor(){super(...arguments),this.label="view",this._handleViewOptionsChange=()=>{this.#t()},this._viewOptions=fn.DEFAULT_VIEW_OPTIONS}static{this.DEFAULT_VIEW_OPTIONS=["author","candidate","proctor","scorer","testConstructor","tutor"]}connectedCallback(){super.connectedCallback(),this.#t()}#t(){if(this.viewOptions){let t=this.viewOptions.split(",").map(e=>e.trim());this._viewOptions=t.filter(e=>fn.DEFAULT_VIEW_OPTIONS.includes(e))}else this._viewOptions=fn.DEFAULT_VIEW_OPTIONS}_switchView(t){this.dispatchEvent(new CustomEvent("on-test-switch-view",{composed:!0,bubbles:!0,detail:t}))}render(){return b`
6420
+ `}#t(t){this.dispatchEvent(new CustomEvent("qti-request-navigation",{composed:!0,bubbles:!0,detail:{type:"section",id:t}}))}constructor(){super(),this.sectionId=null,this.addEventListener("click",()=>this.#t(this.sectionId))}render(){return b` <slot></slot> `}};nu([p({type:String,attribute:"section-id"})],Vn.prototype,"sectionId",void 0);var Ua=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Je=class extends C{constructor(){super(...arguments),this.debug=!1,this.stampContext={view:"candidate",activeItem:{},activeSection:{items:[]},activeTestpart:{items:[],sections:[]},test:{}}}createRenderRoot(){return this}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");if(!t){this.myTemplate=null;return}this.myTemplate=Ut(t)}willUpdate(t){if(!this.computedContext)return;let e=this.computedContext.testParts.find(h=>h.active),r=e?.sections.find(h=>h.active),n=r?.items.find(h=>h.active),{variables:i,...s}=n||{};if(!e||!r||!n)return;let a={...e,items:e.sections.flatMap(h=>h.items.map(({variables:f,...m})=>m)),sections:e.sections.map(h=>({...h,items:h.items.map(({variables:f,...m})=>m)}))},l={...r,items:r.items.map(({variables:h,...f})=>f)},{testParts:c,...d}=this.computedContext;this.stampContext={view:this.computedContext.view,activeItem:s,activeSection:l,activeTestpart:a,test:d},this.dispatchEvent(new CustomEvent("qti-stamp-context-updated",{detail:this.stampContext,bubbles:!0}))}render(){return b` ${this.debug?b`<small><pre>${JSON.stringify(this.stampContext,null,2)}</pre></small>`:P}
6421
+ ${this.myTemplate?this.myTemplate(this.stampContext):P}`}};Ua([p({type:Boolean,reflect:!0})],Je.prototype,"debug",void 0);Ua([_(),T({context:z,subscribe:!0})],Je.prototype,"computedContext",void 0);Ua([_()],Je.prototype,"stampContext",void 0);var zn=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},fo,Ht=class extends C{constructor(){super(...arguments),this.label="view",this._handleViewOptionsChange=()=>{this.#t()},this._viewOptions=fo.DEFAULT_VIEW_OPTIONS}static{this.DEFAULT_VIEW_OPTIONS=["author","candidate","proctor","scorer","testConstructor","tutor"]}connectedCallback(){super.connectedCallback(),this.#t()}#t(){if(this.viewOptions){let t=this.viewOptions.split(",").map(e=>e.trim());this._viewOptions=t.filter(e=>fo.DEFAULT_VIEW_OPTIONS.includes(e))}else this._viewOptions=fo.DEFAULT_VIEW_OPTIONS}_switchView(t){this.dispatchEvent(new CustomEvent("on-test-switch-view",{composed:!0,bubbles:!0,detail:t}))}render(){return b`
6422
6422
  <label part="label" for="viewSelect">${this.label}</label>
6423
6423
  <select
6424
6424
  part="select"
@@ -6427,11 +6427,11 @@ div.full-correct-response-inline {
6427
6427
  >
6428
6428
  ${this._viewOptions.map(t=>b`<option value="${t}" ?selected=${t===this.sessionContext.view}>${t}</option>`)}
6429
6429
  </select>
6430
- `}};fn=Ht;Vi([T({context:Lt,subscribe:!0})],Ht.prototype,"sessionContext",void 0);Vi([p({type:String})],Ht.prototype,"label",void 0);Vi([p({type:String,attribute:"view-options"})],Ht.prototype,"viewOptions",void 0);Vi([$("viewOptions",{waitUntilFirstUpdate:!0})],Ht.prototype,"_handleViewOptionsChange",void 0);Vi([_()],Ht.prototype,"_viewOptions",void 0);var nu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},zi=class extends C{createRenderRoot(){return this}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");if(!t){this.myTemplate=null;return}this.myTemplate=Ut(t)}_switchView(t){this.dispatchEvent(new CustomEvent("on-test-switch-view",{composed:!0,bubbles:!0,detail:t}))}firstUpdated(t){this.addEventListener("click",()=>{this.sessionContext?.view==="scorer"?this._switchView("candidate"):this._switchView("scorer")})}render(){return b`${this.myTemplate?this.myTemplate({view:this.sessionContext?.view}):P}`}};nu([T({context:Lt,subscribe:!0})],zi.prototype,"sessionContext",void 0);var pd=[{tag:"qti-assessment-item-ref",ctor:Nt},{tag:"qti-assessment-section",ctor:ft},{tag:"qti-assessment-test",ctor:Be},{tag:"qti-item-session-control",ctor:kt},{tag:"qti-outcome-processing",ctor:To},{tag:"qti-test",ctor:He},{tag:"qti-test-feedback",ctor:Wo},{tag:"qti-test-part",ctor:we},{tag:"qti-test-variables",ctor:Ii},{tag:"test-check-item",ctor:Pr},{tag:"test-container",ctor:St},{tag:"test-end-attempt",ctor:Qe},{tag:"test-item-link",ctor:_i},{tag:"test-item-to-speech",ctor:Ge},{tag:"test-navigation",ctor:st},{tag:"test-next",ctor:Xe},{tag:"test-paging-buttons-stamp",ctor:Mi},{tag:"test-prev",ctor:Ye},{tag:"test-print-context",ctor:Di},{tag:"test-print-item-variables",ctor:Ni},{tag:"test-scoring-buttons",ctor:Ke},{tag:"test-scoring-feedback",ctor:Mr},{tag:"test-section-buttons-stamp",ctor:$i},{tag:"test-section-link",ctor:Li},{tag:"test-stamp",ctor:Je},{tag:"test-tts-next",ctor:an},{tag:"test-tts-pause",ctor:rn},{tag:"test-tts-play",ctor:en},{tag:"test-tts-prev",ctor:sn},{tag:"test-tts-resume",ctor:on},{tag:"test-tts-stop",ctor:nn},{tag:"test-view",ctor:Ht},{tag:"test-view-toggle",ctor:zi}];for(let{tag:n,ctor:t}of pd)customElements.get(n)||customElements.define(n,t);var Ze=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},At=class extends C{constructor(){super(...arguments),this.customElementRegistry=null,this.itemURL=null,this.itemDoc=null,this.itemXML=null,this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}},this.#t=null,this.#e=null}#t;#e;createRenderRoot(){let t=this.customElementRegistry;return this.#e=t,this.shadowRoot??this.attachShadow({...this.constructor.shadowRootOptions,...t?{customElementRegistry:t}:{}})}async handleItemURLChange(){if(this.itemURL)try{let t=this.qtiContext?.QTI_CONTEXT?.seed,e=(await jt().load(this.itemURL)).shuffleInteractions(t);this.itemDoc=e.htmlDoc(this.#e??void 0)}catch(t){console.error("Error loading or parsing XML:",t)}}handleItemXMLChange(){if(this.itemXML)try{this.itemDoc=jt().parse(this.itemXML).htmlDoc(this.#e??void 0)}catch(t){console.error("Error parsing XML:",t)}}async connectedCallback(){super.connectedCallback(),this.#r(),this.#i(),this.itemURL&&this.handleItemURLChange(),this.itemXML&&this.handleItemXMLChange()}#r(){let t=this.querySelector("template");this.#t=t?t.content:b``}#i(){let t=new CSSStyleSheet;t.replaceSync(Jo),this.shadowRoot.adoptedStyleSheets=[t]}render(){return b`
6430
+ `}};fo=Ht;zn([T({context:Lt,subscribe:!0})],Ht.prototype,"sessionContext",void 0);zn([p({type:String})],Ht.prototype,"label",void 0);zn([p({type:String,attribute:"view-options"})],Ht.prototype,"viewOptions",void 0);zn([$("viewOptions",{waitUntilFirstUpdate:!0})],Ht.prototype,"_handleViewOptionsChange",void 0);zn([_()],Ht.prototype,"_viewOptions",void 0);var iu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},jn=class extends C{createRenderRoot(){return this}connectedCallback(){super.connectedCallback();let t=this.querySelector("template");if(!t){this.myTemplate=null;return}this.myTemplate=Ut(t)}_switchView(t){this.dispatchEvent(new CustomEvent("on-test-switch-view",{composed:!0,bubbles:!0,detail:t}))}firstUpdated(t){this.addEventListener("click",()=>{this.sessionContext?.view==="scorer"?this._switchView("candidate"):this._switchView("scorer")})}render(){return b`${this.myTemplate?this.myTemplate({view:this.sessionContext?.view}):P}`}};iu([T({context:Lt,subscribe:!0})],jn.prototype,"sessionContext",void 0);var pd=[{tag:"qti-assessment-item-ref",ctor:Nt},{tag:"qti-assessment-section",ctor:ft},{tag:"qti-assessment-test",ctor:Be},{tag:"qti-item-session-control",ctor:kt},{tag:"qti-outcome-processing",ctor:Ti},{tag:"qti-test",ctor:He},{tag:"qti-test-feedback",ctor:Wi},{tag:"qti-test-part",ctor:we},{tag:"qti-test-variables",ctor:_n},{tag:"test-check-item",ctor:Pr},{tag:"test-container",ctor:St},{tag:"test-end-attempt",ctor:Qe},{tag:"test-item-link",ctor:Tn},{tag:"test-item-to-speech",ctor:Ge},{tag:"test-navigation",ctor:st},{tag:"test-next",ctor:Xe},{tag:"test-paging-buttons-stamp",ctor:Dn},{tag:"test-prev",ctor:Ye},{tag:"test-print-context",ctor:Nn},{tag:"test-print-item-variables",ctor:$n},{tag:"test-scoring-buttons",ctor:Ke},{tag:"test-scoring-feedback",ctor:Mr},{tag:"test-section-buttons-stamp",ctor:Ln},{tag:"test-section-link",ctor:Vn},{tag:"test-stamp",ctor:Je},{tag:"test-tts-next",ctor:so},{tag:"test-tts-pause",ctor:ro},{tag:"test-tts-play",ctor:eo},{tag:"test-tts-prev",ctor:oo},{tag:"test-tts-resume",ctor:no},{tag:"test-tts-stop",ctor:io},{tag:"test-view",ctor:Ht},{tag:"test-view-toggle",ctor:jn}];for(let{tag:o,ctor:t}of pd)customElements.get(o)||customElements.define(o,t);var Ze=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},At=class extends C{constructor(){super(...arguments),this.customElementRegistry=null,this.itemURL=null,this.itemDoc=null,this.itemXML=null,this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}},this.#t=null,this.#e=null}#t;#e;createRenderRoot(){let t=this.customElementRegistry;return this.#e=t,this.shadowRoot??this.attachShadow({...this.constructor.shadowRootOptions,...t?{customElementRegistry:t}:{}})}async handleItemURLChange(){if(this.itemURL)try{let t=this.qtiContext?.QTI_CONTEXT?.seed,e=(await jt().load(this.itemURL)).shuffleInteractions(t);this.itemDoc=e.htmlDoc(this.#e??void 0)}catch(t){console.error("Error loading or parsing XML:",t)}}handleItemXMLChange(){if(this.itemXML)try{this.itemDoc=jt().parse(this.itemXML).htmlDoc(this.#e??void 0)}catch(t){console.error("Error parsing XML:",t)}}async connectedCallback(){super.connectedCallback(),this.#r(),this.#n(),this.itemURL&&this.handleItemURLChange(),this.itemXML&&this.handleItemXMLChange()}#r(){let t=this.querySelector("template");this.#t=t?t.content:b``}#n(){let t=new CSSStyleSheet;t.replaceSync(Ji),this.shadowRoot.adoptedStyleSheets=[t]}render(){return b`
6431
6431
  ${this.#t}
6432
6432
  <slot></slot>
6433
- ${Ko(this.itemDoc,b`<span>Loading...</span>`)}
6434
- `}};Ze([p({attribute:!1})],At.prototype,"customElementRegistry",void 0);Ze([p({type:String,attribute:"item-url"})],At.prototype,"itemURL",void 0);Ze([_()],At.prototype,"itemDoc",void 0);Ze([_()],At.prototype,"itemXML",void 0);Ze([_(),T({context:ut,subscribe:!0})],At.prototype,"qtiContext",void 0);Ze([$("itemURL",{waitUntilFirstUpdate:!0})],At.prototype,"handleItemURLChange",null);Ze([$("itemXML",{waitUntilFirstUpdate:!0})],At.prototype,"handleItemXMLChange",null);var su=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ji=class extends C{static{this.styles=q`
6433
+ ${Ki(this.itemDoc,b`<span>Loading...</span>`)}
6434
+ `}};Ze([p({attribute:!1})],At.prototype,"customElementRegistry",void 0);Ze([p({type:String,attribute:"item-url"})],At.prototype,"itemURL",void 0);Ze([_()],At.prototype,"itemDoc",void 0);Ze([_()],At.prototype,"itemXML",void 0);Ze([_(),T({context:ut,subscribe:!0})],At.prototype,"qtiContext",void 0);Ze([$("itemURL",{waitUntilFirstUpdate:!0})],At.prototype,"handleItemURLChange",null);Ze([$("itemXML",{waitUntilFirstUpdate:!0})],At.prototype,"handleItemXMLChange",null);var ou=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Fn=class extends C{static{this.styles=q`
6435
6435
  table {
6436
6436
  width: 100%;
6437
6437
  border-collapse: collapse;
@@ -6452,7 +6452,7 @@ div.full-correct-response-inline {
6452
6452
  margin-top: 20px;
6453
6453
  font-size: 16px;
6454
6454
  }
6455
- `}render(){let t=this.computedContext;if(!t||!t.variables)return b``;let e=t.variables.filter(o=>o.type==="response"),r=t.variables.filter(o=>o.type==="outcome"),i=(o,s)=>b`
6455
+ `}render(){let t=this.computedContext;if(!t||!t.variables)return b``;let e=t.variables.filter(i=>i.type==="response"),r=t.variables.filter(i=>i.type==="outcome"),n=(i,s)=>b`
6456
6456
  <h3>${s}</h3>
6457
6457
  <table>
6458
6458
  <thead>
@@ -6465,7 +6465,7 @@ div.full-correct-response-inline {
6465
6465
  </tr>
6466
6466
  </thead>
6467
6467
  <tbody>
6468
- ${o.map(a=>{let l=a.correctResponse?Array.isArray(a.correctResponse)?a.correctResponse.join(", "):a.correctResponse:"",c=a.mapping?.mapEntries?.map(h=>`${h.mapKey}=${h.mappedValue}pt`).join(", ")||"",d=a.areaMapping?.areaMapEntries?.map(h=>`${h.shape}(${h.coords})=${h.mappedValue}pt`).join(", ")||"";return b`
6468
+ ${i.map(a=>{let l=a.correctResponse?Array.isArray(a.correctResponse)?a.correctResponse.join(", "):a.correctResponse:"",c=a.mapping?.mapEntries?.map(h=>`${h.mapKey}=${h.mappedValue}pt`).join(", ")||"",d=a.areaMapping?.areaMapEntries?.map(h=>`${h.shape}(${h.coords})=${h.mappedValue}pt`).join(", ")||"";return b`
6469
6469
  <tr>
6470
6470
  <td>${a.identifier}</td>
6471
6471
  <td>${Array.isArray(a.value)?a.value.join(", "):a.value}</td>
@@ -6477,8 +6477,8 @@ div.full-correct-response-inline {
6477
6477
  </tbody>
6478
6478
  </table>
6479
6479
  `;return b`
6480
- ${i(e,"Response Variables")} ${i(r,"Outcome Variables")}
6481
- `}};su([T({context:me,subscribe:!0})],ji.prototype,"computedContext",void 0);var Ha=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},oe=class extends C{#t;#e;constructor(){super(),this.configContext={},this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}},this.#t=this.#r.bind(this),this.#e=this.#i.bind(this),this.addEventListener("qti-item-context-updated",this.#t),this.addEventListener("qti-assessment-item-connected",this.#e)}#r(t){this.#o(t.detail.itemContext.identifier,t.detail?.itemContext?.variables||[])}#i(t){let e=t.detail._context.variables;this.assessmentItem=t.detail,this.computedContext=this.computedContext?.identifier===this.assessmentItem.identifier?{...this.computedContext,title:this.assessmentItem.title}:{identifier:this.assessmentItem.identifier,title:this.assessmentItem.title,adaptive:this.assessmentItem.getAttribute("adaptive")?.toLowerCase()==="true"||!1,variables:e},this.#o(this.assessmentItem.identifier,e||[])}#o(t,e){let r=e?.find(c=>c.identifier=="SCORE")?.value,i=parseFloat(r?.toString()),o=e?.find(c=>c.identifier==="completionStatus")?.value,s=i!==void 0&&!isNaN(i)&&i>0,a=i!==void 0&&!isNaN(i)&&i<=0,l=o==="completed";this.computedContext={...this.computedContext,identifier:t,correct:s,incorrect:a,completed:l,variables:e}}render(){return b`<slot></slot>`}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-item-context-changed",this.#t),this.removeEventListener("qti-assessment-item-connected",this.#e)}};Ha([_(),B({context:me})],oe.prototype,"computedContext",void 0);Ha([_(),B({context:pt})],oe.prototype,"configContext",void 0);Ha([_(),B({context:ut})],oe.prototype,"qtiContext",void 0);var ud=[{tag:"item-container",ctor:At},{tag:"item-print-variables",ctor:ji},{tag:"qti-item",ctor:oe}];for(let{tag:n,ctor:t}of ud)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Hl)customElements.get(n)||customElements.define(n,t);var md=(n,t,e)=>{let r=new Map;for(let i=t;i<=e;i++)r.set(n[i],i);return r},H=Et(class extends ge{constructor(n){if(super(n),n.type!==qr.CHILD)throw Error("repeat() can only be used in text expressions")}dt(n,t,e){let r;e===void 0?e=t:t!==void 0&&(r=t);let i=[],o=[],s=0;for(let a of n)i[s]=r?r(a,s):s,o[s]=e(a,s),s++;return{values:o,keys:i}}render(n,t,e){return this.dt(n,t,e).values}update(n,[t,e,r]){let i=ql(n),{values:o,keys:s}=this.dt(t,e,r);if(!Array.isArray(i))return this.ut=s,o;let a=this.ut??=[],l=[],c,d,h=0,f=i.length-1,m=0,w=o.length-1;for(;h<=f&&m<=w;)if(i[h]===null)h++;else if(i[f]===null)f--;else if(a[h]===s[m])l[m]=be(i[h],o[m]),h++,m++;else if(a[f]===s[w])l[w]=be(i[f],o[w]),f--,w--;else if(a[h]===s[w])l[w]=be(i[h],o[w]),Cr(n,l[w+1],i[h]),h++,w--;else if(a[f]===s[m])l[m]=be(i[f],o[m]),Cr(n,i[h],i[f]),f--,m++;else if(c===void 0&&(c=md(s,m,w),d=md(a,h,f)),c.has(a[h]))if(c.has(a[f])){let x=d.get(s[m]),u=x!==void 0?i[x]:null;if(u===null){let g=Cr(n,i[h]);be(g,o[m]),l[m]=g}else l[m]=be(u,o[m]),Cr(n,i[h],u),i[x]=null;m++}else Ro(i[f]),f--;else Ro(i[h]),h++;for(;m<=w;){let x=Cr(n,l[w+1]);be(x,o[m]),l[m++]=x}for(;h<=f;){let x=i[h++];x!==null&&Ro(x)}return this.ut=s,xl(n,l),Z}});var qe=Symbol("dragDropContext");var fd=[O,Vt,q`
6480
+ ${n(e,"Response Variables")} ${n(r,"Outcome Variables")}
6481
+ `}};ou([T({context:me,subscribe:!0})],Fn.prototype,"computedContext",void 0);var Ha=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ie=class extends C{#t;#e;constructor(){super(),this.configContext={},this.qtiContext={QTI_CONTEXT:{testIdentifier:"",candidateIdentifier:"",environmentIdentifier:"default"}},this.#t=this.#r.bind(this),this.#e=this.#n.bind(this),this.addEventListener("qti-item-context-updated",this.#t),this.addEventListener("qti-assessment-item-connected",this.#e)}#r(t){this.#i(t.detail.itemContext.identifier,t.detail?.itemContext?.variables||[])}#n(t){let e=t.detail._context.variables;this.assessmentItem=t.detail,this.computedContext=this.computedContext?.identifier===this.assessmentItem.identifier?{...this.computedContext,title:this.assessmentItem.title}:{identifier:this.assessmentItem.identifier,title:this.assessmentItem.title,adaptive:this.assessmentItem.getAttribute("adaptive")?.toLowerCase()==="true"||!1,variables:e},this.#i(this.assessmentItem.identifier,e||[])}#i(t,e){let r=e?.find(c=>c.identifier=="SCORE")?.value,n=parseFloat(r?.toString()),i=e?.find(c=>c.identifier==="completionStatus")?.value,s=n!==void 0&&!isNaN(n)&&n>0,a=n!==void 0&&!isNaN(n)&&n<=0,l=i==="completed";this.computedContext={...this.computedContext,identifier:t,correct:s,incorrect:a,completed:l,variables:e}}render(){return b`<slot></slot>`}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-item-context-changed",this.#t),this.removeEventListener("qti-assessment-item-connected",this.#e)}};Ha([_(),B({context:me})],ie.prototype,"computedContext",void 0);Ha([_(),B({context:pt})],ie.prototype,"configContext",void 0);Ha([_(),B({context:ut})],ie.prototype,"qtiContext",void 0);var ud=[{tag:"item-container",ctor:At},{tag:"item-print-variables",ctor:Fn},{tag:"qti-item",ctor:ie}];for(let{tag:o,ctor:t}of ud)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Hl)customElements.get(o)||customElements.define(o,t);var md=(o,t,e)=>{let r=new Map;for(let n=t;n<=e;n++)r.set(o[n],n);return r},H=Et(class extends ge{constructor(o){if(super(o),o.type!==qr.CHILD)throw Error("repeat() can only be used in text expressions")}dt(o,t,e){let r;e===void 0?e=t:t!==void 0&&(r=t);let n=[],i=[],s=0;for(let a of o)n[s]=r?r(a,s):s,i[s]=e(a,s),s++;return{values:i,keys:n}}render(o,t,e){return this.dt(o,t,e).values}update(o,[t,e,r]){let n=ql(o),{values:i,keys:s}=this.dt(t,e,r);if(!Array.isArray(n))return this.ut=s,i;let a=this.ut??=[],l=[],c,d,h=0,f=n.length-1,m=0,w=i.length-1;for(;h<=f&&m<=w;)if(n[h]===null)h++;else if(n[f]===null)f--;else if(a[h]===s[m])l[m]=be(n[h],i[m]),h++,m++;else if(a[f]===s[w])l[w]=be(n[f],i[w]),f--,w--;else if(a[h]===s[w])l[w]=be(n[h],i[w]),Cr(o,l[w+1],n[h]),h++,w--;else if(a[f]===s[m])l[m]=be(n[f],i[m]),Cr(o,n[h],n[f]),f--,m++;else if(c===void 0&&(c=md(s,m,w),d=md(a,h,f)),c.has(a[h]))if(c.has(a[f])){let x=d.get(s[m]),u=x!==void 0?n[x]:null;if(u===null){let g=Cr(o,n[h]);be(g,i[m]),l[m]=g}else l[m]=be(u,i[m]),Cr(o,n[h],u),n[x]=null;m++}else Ri(n[f]),f--;else Ri(n[h]),h++;for(;m<=w;){let x=Cr(o,l[w+1]);be(x,i[m]),l[m++]=x}for(;h<=f;){let x=n[h++];x!==null&&Ri(x)}return this.ut=s,xl(o,l),Z}});var qe=Symbol("dragDropContext");var fd=[O,Vt,q`
6482
6482
  /* A drop target — see qti-gap.styles.ts. The interaction publishes the chip measurements as
6483
6483
  custom properties on its host; the properties themselves live here. */
6484
6484
  :host {
@@ -6496,7 +6496,7 @@ div.full-correct-response-inline {
6496
6496
  width: 100%;
6497
6497
  height: 100%;
6498
6498
  }
6499
- `];var gd=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Dr=class extends C{constructor(){super(...arguments),this.internals=this.attachInternals(),this.acceptsDeclarativeDrops=!0}static{this.styles=fd}get drags(){return this._dragDrop?.nodesByTarget?.[this.identifier]??[]}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,composed:!0,cancelable:!1}))}render(){return b`<div part="drop">
6499
+ `];var gd=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Dr=class extends C{constructor(){super(...arguments),this.internals=this.attachInternals(),this.acceptsDeclarativeDrops=!0}static{this.styles=fd}get drags(){return this._dragDrop?.nodesByTarget?.[this.identifier]??[]}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,composed:!0,cancelable:!1}))}render(){return b`<div part="drop">
6500
6500
  ${H(this.drags,t=>t.getAttribute("identifier"),t=>t)}
6501
6501
  </div>`}};gd([p({type:String,reflect:!0})],Dr.prototype,"identifier",void 0);gd([T({context:qe,subscribe:!0}),_()],Dr.prototype,"_dragDrop",void 0);var bd=[{tag:"qti-associable-hotspot",ctor:Dr}];var yd=[O,Vt,q`
6502
6502
  /*
@@ -6543,7 +6543,7 @@ div.full-correct-response-inline {
6543
6543
  min-height: var(--qti-dropzone-min-height, 0);
6544
6544
  min-width: var(--qti-dropzone-min-width, 0);
6545
6545
  }
6546
- `];var Wa=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},tr=class extends C{constructor(){super(...arguments),this.internals=this.attachInternals(),this.acceptsDeclarativeDrops=!0,this.tabindex=0}static{this.styles=yd}get drags(){return this._dragDrop?.nodesByTarget?.[this.identifier]??[]}render(){return b`<div part="drop">
6546
+ `];var Wa=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},tr=class extends C{constructor(){super(...arguments),this.internals=this.attachInternals(),this.acceptsDeclarativeDrops=!0,this.tabindex=0}static{this.styles=yd}get drags(){return this._dragDrop?.nodesByTarget?.[this.identifier]??[]}render(){return b`<div part="drop">
6547
6547
  ${H(this.drags,t=>t.getAttribute("identifier"),t=>t)}
6548
6548
  </div>`}};Wa([p({type:Number,reflect:!0})],tr.prototype,"tabindex",void 0);Wa([p({type:String,reflect:!0})],tr.prototype,"identifier",void 0);Wa([T({context:qe,subscribe:!0}),_()],tr.prototype,"_dragDrop",void 0);var vd=[{tag:"qti-gap",ctor:tr}];var wd=[O,q`
6549
6549
  /* Centred, because a gap-img is a picture inside a drop the same size as it. Was in the theme's
@@ -6554,7 +6554,7 @@ div.full-correct-response-inline {
6554
6554
  justify-content: center;
6555
6555
  user-select: none;
6556
6556
  }
6557
- `];var au=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Fi=class extends C{constructor(){super(...arguments),this.tabindex=0,this.internals=this.attachInternals()}static{this.styles=wd}connectedCallback(){this.setAttribute("slot","drags")}};au([p({type:Number,reflect:!0})],Fi.prototype,"tabindex",void 0);var xd=[{tag:"qti-gap-img",ctor:Fi}];var er=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},qd={toAttribute:n=>n?"true":"false",fromAttribute:n=>n==="true"};function yt(n,t){class e extends n{#t;#e(){let o=this._interactionContext?.choiceRole??null;o!==this.#t&&(this.#t&&this.internals.states.delete(this.#t),this.#t=o,this.internals.role=o,o&&this.internals.states.add(o))}handleDisabledChange(i,o){o?(this.internals.ariaDisabled="true",this.internals.states.add("disabled"),this.blur()):(this.internals.ariaDisabled=null,this.internals.states.delete("disabled")),this.tabIndex=o?-1:0}handleReadonlyChange(i,o){o?(this.internals.ariaReadOnly="true",this.internals.states.add("readonly")):(this.internals.ariaReadOnly=null,this.internals.states.delete("readonly"))}constructor(...i){super(...i),this.identifier="",this.tabIndex=0,this.disabled=!1,this.readonly=!1,this.#t=null,this.internals=this.attachInternals()}willUpdate(i){super.willUpdate(i),this.#e()}connectedCallback(){super.connectedCallback(),this.internals.ariaChecked="false",this.disabled&&(this.internals.ariaDisabled="true",this.internals.states.add("disabled"),this.tabIndex=-1),this.readonly&&(this.internals.ariaReadOnly="true",this.internals.states.add("readonly")),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`register-${t}`,{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`unregister-${t}`,{bubbles:!0,composed:!0}))}_onKeyUp(i){i.altKey||(i.code==="Space"||i.code==="Enter")&&(i.preventDefault(),this._activate())}_onClick(){this.disabled||this.readonly||(this.focus(),this._activate())}_activate(){this.disabled||this.readonly||this.dispatchEvent(new CustomEvent(`activate-${t}`,{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}render(){return b`<slot></slot>`}}return er([p({type:String})],e.prototype,"identifier",void 0),er([p({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",void 0),er([p({type:Boolean,attribute:"aria-disabled",converter:qd})],e.prototype,"disabled",void 0),er([p({type:Boolean,attribute:"aria-readonly",converter:qd})],e.prototype,"readonly",void 0),er([T({context:yr,subscribe:!0}),_()],e.prototype,"_interactionContext",void 0),er([$("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",null),er([$("readonly",{waitUntilFirstUpdate:!0})],e.prototype,"handleReadonlyChange",null),e}var Cd=[O,q`
6557
+ `];var su=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Bn=class extends C{constructor(){super(...arguments),this.tabindex=0,this.internals=this.attachInternals()}static{this.styles=wd}connectedCallback(){this.setAttribute("slot","drags")}};su([p({type:Number,reflect:!0})],Bn.prototype,"tabindex",void 0);var xd=[{tag:"qti-gap-img",ctor:Bn}];var er=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},qd={toAttribute:o=>o?"true":"false",fromAttribute:o=>o==="true"};function yt(o,t){class e extends o{#t;#e(){let i=this._interactionContext?.choiceRole??null;i!==this.#t&&(this.#t&&this.internals.states.delete(this.#t),this.#t=i,this.internals.role=i,i&&this.internals.states.add(i))}handleDisabledChange(n,i){i?(this.internals.ariaDisabled="true",this.internals.states.add("disabled"),this.blur()):(this.internals.ariaDisabled=null,this.internals.states.delete("disabled")),this.tabIndex=i?-1:0}handleReadonlyChange(n,i){i?(this.internals.ariaReadOnly="true",this.internals.states.add("readonly")):(this.internals.ariaReadOnly=null,this.internals.states.delete("readonly"))}constructor(...n){super(...n),this.identifier="",this.tabIndex=0,this.disabled=!1,this.readonly=!1,this.#t=null,this.internals=this.attachInternals()}willUpdate(n){super.willUpdate(n),this.#e()}connectedCallback(){super.connectedCallback(),this.internals.ariaChecked="false",this.disabled&&(this.internals.ariaDisabled="true",this.internals.states.add("disabled"),this.tabIndex=-1),this.readonly&&(this.internals.ariaReadOnly="true",this.internals.states.add("readonly")),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`register-${t}`,{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`unregister-${t}`,{bubbles:!0,composed:!0}))}_onKeyUp(n){n.altKey||(n.code==="Space"||n.code==="Enter")&&(n.preventDefault(),this._activate())}_onClick(){this.disabled||this.readonly||(this.focus(),this._activate())}_activate(){this.disabled||this.readonly||this.dispatchEvent(new CustomEvent(`activate-${t}`,{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}render(){return b`<slot></slot>`}}return er([p({type:String})],e.prototype,"identifier",void 0),er([p({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",void 0),er([p({type:Boolean,attribute:"aria-disabled",converter:qd})],e.prototype,"disabled",void 0),er([p({type:Boolean,attribute:"aria-readonly",converter:qd})],e.prototype,"readonly",void 0),er([T({context:yr,subscribe:!0}),_()],e.prototype,"_interactionContext",void 0),er([$("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",null),er([$("readonly",{waitUntilFirstUpdate:!0})],e.prototype,"handleReadonlyChange",null),e}var Cd=[O,q`
6558
6558
  /*
6559
6559
  * A chip's own box. Both drag-drop interactions that use this element laid it out from the
6560
6560
  * theme — gap-match with 'display: flex !important; align-items: center !important',
@@ -6597,8 +6597,8 @@ div.full-correct-response-inline {
6597
6597
  align-items: center;
6598
6598
  justify-content: center;
6599
6599
  }
6600
- `];var cu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ce=class extends yt(C,"qti-gap-text"){constructor(){super(...arguments),this.tabindex=0}static{this.styles=Cd}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","drags")}render(){return b`<div part="control"></div>
6601
- <slot part="label"></slot>`}};cu([p({type:Number,reflect:!0})],Ce.prototype,"tabindex",void 0);var kd=[{tag:"qti-gap-text",ctor:Ce}];var Ed=[O,q`
6600
+ `];var au=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Ce=class extends yt(C,"qti-gap-text"){constructor(){super(...arguments),this.tabindex=0}static{this.styles=Cd}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","drags")}render(){return b`<div part="control"></div>
6601
+ <slot part="label"></slot>`}};au([p({type:Number,reflect:!0})],Ce.prototype,"tabindex",void 0);var kd=[{tag:"qti-gap-text",ctor:Ce}];var Ed=[O,q`
6602
6602
  :host {
6603
6603
  display: flex;
6604
6604
  user-select: none;
@@ -6618,7 +6618,7 @@ div.full-correct-response-inline {
6618
6618
  display: grid;
6619
6619
  place-content: center;
6620
6620
  }
6621
- `];var lu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},rr=class extends yt(C,"qti-hotspot-choice"){static{this.styles=Ed}};lu([p({attribute:"aria-ordervalue",type:Number,reflect:!0})],rr.prototype,"order",void 0);var Sd=[{tag:"qti-hotspot-choice",ctor:rr}];var Ad=[O,q`
6621
+ `];var cu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},rr=class extends yt(C,"qti-hotspot-choice"){static{this.styles=Ed}};cu([p({attribute:"aria-ordervalue",type:Number,reflect:!0})],rr.prototype,"order",void 0);var Sd=[{tag:"qti-hotspot-choice",ctor:rr}];var Ad=[O,q`
6622
6622
  /* 'position: relative' is the containing block for the answer-key tick the theme draws as an
6623
6623
  absolutely positioned ::before. See CONTRACT.md §7. */
6624
6624
  :host {
@@ -6638,8 +6638,8 @@ div.full-correct-response-inline {
6638
6638
  [part='control'] {
6639
6639
  display: none;
6640
6640
  }
6641
- `];var ir=class extends yt(C,"qti-hottext"){static{this.styles=Ad}render(){return b`<div part="control"><div part="control-mark"></div></div>
6642
- <slot part="label"></slot>`}};var Id=[{tag:"qti-hottext",ctor:ir}];var du=q`
6641
+ `];var nr=class extends yt(C,"qti-hottext"){static{this.styles=Ad}render(){return b`<div part="control"><div part="control-mark"></div></div>
6642
+ <slot part="label"></slot>`}};var Id=[{tag:"qti-hottext",ctor:nr}];var lu=q`
6643
6643
  /*
6644
6644
  * An option row: one line, clipped, with its text centred against the row's min-height. All four
6645
6645
  * were in the theme, set on this host from the document — which is also why the 'display: block'
@@ -6656,13 +6656,13 @@ div.full-correct-response-inline {
6656
6656
  slot {
6657
6657
  display: inline;
6658
6658
  }
6659
- `,_d=du;var hu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Bi=class extends yt(C,"qti-inline-choice"){static{this.styles=_d}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this.#t),this.dispatchEvent(new CustomEvent("qti-inline-choice-register",{bubbles:!0,composed:!0,cancelable:!1}))}disconnectedCallback(){this.removeEventListener("click",this.#t)}render(){return b` <slot></slot> `}#t(){this.dispatchEvent(new CustomEvent("qti-inline-choice-select",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier}}))}};hu([p({type:String})],Bi.prototype,"identifier",void 0);var Td=[{tag:"qti-inline-choice",ctor:Bi}];var Rd=[O,q`
6659
+ `,_d=lu;var du=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Un=class extends yt(C,"qti-inline-choice"){static{this.styles=_d}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this.#t),this.dispatchEvent(new CustomEvent("qti-inline-choice-register",{bubbles:!0,composed:!0,cancelable:!1}))}disconnectedCallback(){this.removeEventListener("click",this.#t)}render(){return b` <slot></slot> `}#t(){this.dispatchEvent(new CustomEvent("qti-inline-choice-select",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier}}))}};du([p({type:String})],Un.prototype,"identifier",void 0);var Td=[{tag:"qti-inline-choice",ctor:Un}];var Rd=[O,q`
6660
6660
  :host {
6661
6661
  display: block;
6662
6662
  margin: var(--qti-gap) 0;
6663
6663
  width: 100%;
6664
6664
  }
6665
- `];var gn=class extends C{static{this.styles=Rd}render(){return b`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.parentElement?.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};var Od=[{tag:"qti-prompt",ctor:gn}];var Pd=[O,Vt,q`
6665
+ `];var go=class extends C{static{this.styles=Rd}render(){return b`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.parentElement?.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};var Od=[{tag:"qti-prompt",ctor:go}];var Pd=[O,Vt,q`
6666
6666
  /*
6667
6667
  * 'align-items' / 'justify-content' are variables because one caller cannot be reached any other
6668
6668
  * way. In tabular match this element is a light-DOM *grandchild* of the slotted
@@ -6811,13 +6811,13 @@ div.full-correct-response-inline {
6811
6811
  align-items: center;
6812
6812
  justify-content: center;
6813
6813
  }
6814
- `];var bn=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},It=class extends yt(C,"qti-simple-associable-choice"){constructor(){super(...arguments),this.matchMin=0,this.matchMax=1,this.fixed=!1,this.acceptsDeclarativeDrops=!0}static{this.styles=Pd}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice")}get drags(){return this._dragDrop?.nodesByTarget?.[this.identifier]??[]}render(){return b`
6814
+ `];var bo=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},It=class extends yt(C,"qti-simple-associable-choice"){constructor(){super(...arguments),this.matchMin=0,this.matchMax=1,this.fixed=!1,this.acceptsDeclarativeDrops=!0}static{this.styles=Pd}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice")}get drags(){return this._dragDrop?.nodesByTarget?.[this.identifier]??[]}render(){return b`
6815
6815
  <div part="control"></div>
6816
6816
  <slot part="label"></slot>
6817
6817
  <div part="drop">
6818
6818
  ${H(this.drags,t=>t.getAttribute("identifier"),t=>t)}
6819
6819
  </div>
6820
- `}};bn([p({type:Number,attribute:"match-min"})],It.prototype,"matchMin",void 0);bn([p({type:Number,attribute:"match-max"})],It.prototype,"matchMax",void 0);bn([p({type:String,attribute:"fixed",converter:{fromAttribute:n=>n==="true",toAttribute:n=>String(n)}})],It.prototype,"fixed",void 0);bn([T({context:qe,subscribe:!0}),_()],It.prototype,"_dragDrop",void 0);var Md=[{tag:"qti-simple-associable-choice",ctor:It}];var Dd=[O,q`
6820
+ `}};bo([p({type:Number,attribute:"match-min"})],It.prototype,"matchMin",void 0);bo([p({type:Number,attribute:"match-max"})],It.prototype,"matchMax",void 0);bo([p({type:String,attribute:"fixed",converter:{fromAttribute:o=>o==="true",toAttribute:o=>String(o)}})],It.prototype,"fixed",void 0);bo([T({context:qe,subscribe:!0}),_()],It.prototype,"_dragDrop",void 0);var Md=[{tag:"qti-simple-associable-choice",ctor:It}];var Dd=[O,q`
6821
6821
  /*
6822
6822
  * 'position: relative' unconditionally, because this element can carry a correction badge and a
6823
6823
  * badge needs a containing block. The theme draws the badge as an absolutely positioned ::after
@@ -6853,9 +6853,9 @@ div.full-correct-response-inline {
6853
6853
  align-items: center;
6854
6854
  justify-content: center;
6855
6855
  }
6856
- `];var yn=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},_t=class extends yt(C,"qti-simple-choice"){constructor(){super(...arguments),this.templateIdentifier=null,this.showHide="show",this.fixed=!1}static{this.styles=Dd}static{this.shadowRootOptions={...C.shadowRootOptions,delegatesFocus:!0}}get checked(){return this.internals.states.has("checked")}render(){return b`<div part="control" tabindex="0"><div part="control-mark"></div></div>
6856
+ `];var yo=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},_t=class extends yt(C,"qti-simple-choice"){constructor(){super(...arguments),this.templateIdentifier=null,this.showHide="show",this.fixed=!1}static{this.styles=Dd}static{this.shadowRootOptions={...C.shadowRootOptions,delegatesFocus:!0}}get checked(){return this.internals.states.has("checked")}render(){return b`<div part="control" tabindex="0"><div part="control-mark"></div></div>
6857
6857
  ${this.marker?b`<div id="label" part="marker">${this.marker}</div>`:P}
6858
- <slot part="label"></slot>`}};yn([p({type:String,attribute:"template-identifier"})],_t.prototype,"templateIdentifier",void 0);yn([p({type:String,attribute:"show-hide"})],_t.prototype,"showHide",void 0);yn([p({type:Boolean,converter:{fromAttribute:n=>n==="true",toAttribute:n=>String(n)}})],_t.prototype,"fixed",void 0);yn([p({type:String,attribute:!1})],_t.prototype,"marker",void 0);var Nd=[{tag:"qti-simple-choice",ctor:_t}];var $d=[...bd,...vd,...xd,...kd,...Sd,...Id,...Td,...Od,...Md,...Nd];var pu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o};function uu(n,t,e,r,i={}){let o=i.publishWidth??!0,s=i.hostWindow??(typeof window<"u"?window:null);if(!t.length||!e.length||!s)return;let a=0,l=0,c=r.length?r:[n],d=c.map(h=>({el:h,reservation:h.style.getPropertyValue("--qti-drag-min-width"),hadStyleAttribute:h.hasAttribute("style")}));c.forEach(h=>h.style.setProperty("--qti-drag-min-width","0px")),t.forEach(h=>{let f=h.getBoundingClientRect();a=Math.max(a,f.height),l=Math.max(l,f.width)}),d.forEach(({el:h,reservation:f,hadStyleAttribute:m})=>{f?h.style.setProperty("--qti-drag-min-width",f):h.style.removeProperty("--qti-drag-min-width"),!m&&h.getAttribute("style")===""&&h.removeAttribute("style")}),i.hasChanged?.({height:a,width:l})!==!1&&(n.style.setProperty("--qti-dropzone-min-height",`${a}px`),o&&(n.style.setProperty("--qti-dropzone-min-width",`${l}px`),n.style.setProperty("--qti-drag-min-width",`${l}px`)),r.forEach(h=>{h.style.minHeight=`var(--qti-drag-container-min-height, ${a}px)`,h.style.setProperty("--qti-dropzone-min-height",`${a}px`),o&&(h.style.setProperty("--qti-dropzone-min-width",`${l}px`),h.style.setProperty("--qti-drag-min-width",`${l}px`))}))}var Qa=(n,t,e,r='slot[part="drags"]')=>{class i extends n{constructor(){super(...arguments),this.autoSizeDropzones=!0,this.#t=null,this.#e=new Set,this.#r=null,this.#i=0,this.#o=null}get autoSizeDropzoneWidth(){return!0}#t;#e;#r;#i;#o;collectAutoSizeTargets(){let s=(a,l)=>Array.from(l?.querySelectorAll(a)??[]);return{draggables:[...s(t,this),...s(t,this.shadowRoot)],droppables:[...s(e,this),...s(e,this.shadowRoot)],dragContainers:[...s(r,this),...s(r,this.shadowRoot)]}}dropzonePropertyTarget(){return this}updateMinDimensionsForDropZones(){if(!this.autoSizeDropzones)return;let{draggables:s,droppables:a,dragContainers:l}=this.collectAutoSizeTargets();s.length!==0&&(uu(this.dropzonePropertyTarget(),s,a,l,{publishWidth:this.autoSizeDropzoneWidth,hasChanged:c=>{let d=this.#o;return d&&d.height===c.height&&d.width===c.width?!1:(this.#o=c,!0)}}),this.#a(s),this.#n())}#n(){typeof MutationObserver>"u"||this.#r||(this.#r=new MutationObserver(()=>this.#s()),this.#r.observe(this,{childList:!0,subtree:!0,characterData:!0}))}#s(){this.#i||(this.#i=requestAnimationFrame(()=>{this.#i=0,this.updateMinDimensionsForDropZones()}))}#a(s){if(typeof ResizeObserver>"u")return;this.#t??=new ResizeObserver(()=>this.#s());let a=new Set(s);for(let l of this.#e)a.has(l)||this.#t.unobserve(l);for(let l of a)this.#e.has(l)||this.#t.observe(l);this.#e=a}disconnectedCallback(){this.#t?.disconnect(),this.#t=null,this.#e.clear(),this.#r?.disconnect(),this.#r=null,this.#i&&cancelAnimationFrame(this.#i),this.#i=0,super.disconnectedCallback()}}return pu([p({type:Boolean,attribute:"auto-size-dropzones"})],i.prototype,"autoSizeDropzones",void 0),i};var{AbortController:Wt,AbortSignal:Ga,WeakMap:mu,WeakRef:fu,Window:Ld,reportError:vn=console.log}=globalThis,ke=n=>n&&n.defaultView!==null&&n.defaultView.document===n&&(n.defaultView.top===n.defaultView||ke(n.defaultView.parent.document)),or=()=>!!Ld&&globalThis instanceof Ld,Xa=Symbol("unset"),[Vd,gu]=(()=>{function n(x,u,g=!0){Object.defineProperty(x,u,{...Object.getOwnPropertyDescriptor(x,u),enumerable:g})}let t="try"in Promise?Promise.try.bind(Promise):(x,...u)=>new Promise(g=>g(x(...u))),e="withResolvers"in Promise?Promise.withResolvers.bind(Promise):()=>{let x,u;return{promise:new Promise((y,v)=>(x=y,u=v)),resolve:x,reject:u}};function r(x,u){let g=u.call(x);if(g===null||typeof g!="object")throw new TypeError("Iterator is not an object");return g}let i=new mu,o={next(...x){let u=this,g=i.get(u);if(!g?.syncIteratorRecord)throw new TypeError("AsyncFromSyncIteratorPrototype.next called on invalid object");let{syncIteratorRecord:y}=g;return t(()=>y.next(...x))},return(...x){let u=this,g=i.get(u);if(!g?.syncIteratorRecord)throw new TypeError("AsyncFromSyncIteratorPrototype.return called on invalid object");let{syncIteratorRecord:y}=g;return t(()=>y.return?y.return(...x):{value:void 0,done:!0})},throw(...x){let u=this,g=i.get(u);if(!g?.syncIteratorRecord)throw new TypeError("AsyncFromSyncIteratorPrototype.throw called on invalid object");let{syncIteratorRecord:y}=g;return t(()=>{if(!y.throw)throw y.return(),new TypeError("no throw method");return y.throw(...x)})}};function s(x){let u=Object.create(o);return i.set(u,{syncIteratorRecord:x}),u}function a(x,u){let g;if(u){if(g=x[Symbol.asyncIterator],g==null){if(g=x[Symbol.iterator],g==null)throw new TypeError("Object is not async iterable");let y=r(x,g);return s(y)}}else g=x[Symbol.iterator];if(g==null)throw new TypeError("Object is not iterable");return r(x,g)}let l="any"in Ga?Ga.any.bind(Ga):x=>{let u=new Wt;for(let g of x)if(g.aborted)return u.abort(g.reason),u.signal;for(let g of x)g.addEventListener("abort",()=>{u.abort(g.reason)},{signal:u.signal});return u.signal},c=x=>l(x.filter(Boolean));class d{constructor({next:u,error:g,complete:y}={}){i.set(this,{next:u,error:g,complete:y})}next(u){let{next:g}=i.get(this)||{};g&&g(u)}error(u){let{error:g}=i.get(this)||{};g?g(u):vn(u)}complete(){let{complete:u}=i.get(this)||{};u&&u()}}function h(x,u){let g=i.get(x);if(g?.active){g.active=!1,g.subscriptionController.abort(u);for(let y of g.teardowns.reverse()){if(or()&&!ke(document))return;try{y()}catch(v){vn(v)}}}}function f(x,u,g={}){if(or()&&!ke(document))return;let y;typeof u=="function"?y=new d({next:u}):u&&!(u instanceof d)?y=new d(u):y=u||new d;let v=i.get(x),I=v.weakSubscriber?.deref();if(I?.active){let E=I,k=i.get(E);k.observers.add(y),g.signal&&(g.signal.aborted?k.observers.delete(y):g.signal.addEventListener("abort",()=>{let R=i.get(E);R?.active&&(R.observers.delete(y),R.observers.size==0&&h(E,g.signal.reason))}));return}let S=new m(y);if(v.weakSubscriber=new fu(S),"signal"in g&&(g.signal.aborted?h(S,g.signal.reason):g.signal.addEventListener("abort",()=>{let E=i.get(S);E?.active&&(E.observers.delete(y),E.observers.size==0&&h(S,g.signal.reason))})),v.subscribeCallback)try{v.subscribeCallback(S)}catch(E){S.error(E)}}class m{get[Symbol.toStringTag](){return"Subscriber"}constructor(u=null){if(!(u instanceof d))throw new TypeError("Illegal constructor");i.set(this,{active:!0,observers:new Set([u]),teardowns:[],subscriptionController:new Wt})}next(u){if(!(this instanceof m))throw new TypeError("illegal invocation");if(!arguments.length)throw new TypeError("too few arguments");let g=i.get(this);if(!g?.active||or()&&!ke(document))return;let y=new Set(g.observers);for(let v of y)v.next(u)}error(u){if(!(this instanceof m))throw new TypeError("illegal invocation");if(!arguments.length)throw new TypeError("too few arguments");let g=i.get(this);if(!g?.active){vn(u);return}if(or()&&!ke(document))return;h(this,u);let y=new Set(g.observers);for(let v of y)v.error(u)}complete(){if(!(this instanceof m))throw new TypeError("illegal invocation");let u=i.get(this);if(!u?.active||or()&&!ke(document))return;h(this);let g=new Set(u.observers);for(let y of g)y.complete()}addTeardown(u){if(!(this instanceof m))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");if(or()&&!ke(document))return;let g=i.get(this);g?.active?g.teardowns.push(u):u()}get active(){if(!(this instanceof m))throw new TypeError("illegal invocation");return!!i.get(this)?.active}get signal(){if(!(this instanceof m))throw new TypeError("illegal invocation");if(!i.has(this)){let u=new Wt;return u.abort(),u.signal}return i.get(this).subscriptionController.signal}}n(m.prototype,"next"),n(m.prototype,"error"),n(m.prototype,"complete"),n(m.prototype,"addTeardown"),n(m.prototype,"active"),n(m.prototype,"signal");class w{get[Symbol.toStringTag](){return"Observable"}constructor(u){if(!u)throw new TypeError("1 argument required but 0 present");i.set(this,{weakSubscriber:null,subscribeCallback:u})}static from(u){if(u===null||typeof u!="object")throw new TypeError("Observable.from only accepts objects");if(u instanceof w)return u;if(typeof(Symbol.asyncIterator in u&&u[Symbol.asyncIterator])=="function"){let I=function(S,E){if(S.signal.aborted)return;let k;try{let R=E.next();k=Promise.resolve(R)}catch(R){k=Promise.reject(R)}k.then(R=>{if(R===null||typeof R!="object"){S.error(new TypeError("Not an IteratorResult."));return}try{({done:v}=R)}catch(V){S.error(V);return}if(v){S.complete();return}let N;try{N=R.value}catch(V){S.error(V);return}S.next(N),I(S,E)},R=>{S.error(R)})},v=!1;return new w(S=>{if(S.signal.aborted)return;let E;try{E=a(u,!0)}catch(R){S.error(R);return}let k=E;S.signal.aborted||(S.signal.addEventListener("abort",()=>{if(typeof k.return!="function"||v)return;t(()=>k.return(S.signal.reason)).then(N=>{if(N===null||typeof N!="object")throw new TypeError("Iterator .return() must return an Object")})}),I(S,k))})}if(typeof(Symbol.iterator in u&&u[Symbol.iterator])=="function")return new w(v=>{if(v.signal.aborted)return;let I;try{I=a(u,!1)}catch(k){v.error(k);return}let S=!1,E=I;if(!v.signal.aborted)for(v.signal.addEventListener("abort",()=>{if(typeof E.return!="function"||S)return;let k=E.return();if(k===null||typeof k!="object")throw new TypeError("Iterator .return() must return an Object")});;)try{let k=E.next();if({done:S}=k,S){v.complete();return}if(v.next(k.value),v.signal.aborted)break}catch(k){v.error(k);break}});if(u instanceof Promise||typeof u.then=="function")return new w(v=>{u.then(I=>{v.next(I),v.complete()},I=>{v.error(I)})});throw new TypeError("Could not convert value to Observable")}subscribe(u=null,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");f(this,u,g)}takeUntil(u){if(!(this instanceof w))throw new TypeError("illegal invocation");let g=this,y=w.from(u);return new w(v=>{let I=new d({next(){v.complete()},error(){v.complete()}}),S={signal:v.signal};if(f(y,I,S),!v.active)return;let E=new d({next(k){v.next(k)},error(k){v.error(k)},complete(){v.complete()}});f(g,E,S)})}map(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{let v=0,I=new d({next(E){let k;try{k=u(E,v)}catch(R){y.error(R);return}v+=1,y.next(k)},error(E){y.error(E)},complete(){y.complete()}}),S={signal:y.signal};f(g,I,S)})}inspect(u={}){let g=null,y=null,v=null,I=null,S=null;typeof u=="function"?y=u:u&&typeof u=="object"&&("subscribe"in u&&(g=u.subscribe),"next"in u&&(y=u.next),"error"in u&&(v=u.error),"complete"in u&&(I=u.complete),"abort"in u&&(S=u.abort));let E=this;return new w(k=>{if(g!==null)try{g()}catch(L){k.error(L);return}let R=()=>{try{S!==null&&S(k.signal.reason)}catch(L){vn(L)}};k.signal.addEventListener("abort",R,{once:!0});let N=new d({next(L){if(y!==null)try{y(L)}catch(lt){k.signal.removeEventListener("abort",R),k.error(lt);return}k.next(L)},error(L){if(k.signal.removeEventListener("abort",R),v!==null)try{v(L)}catch(lt){k.error(lt);return}k.error(L)},complete(){if(k.signal.removeEventListener("abort",R),I!==null)try{I()}catch(L){k.error(L);return}k.complete()}}),V={signal:k.signal};f(E,N,V)})}filter(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{let v=0,I=new d({next(E){let k=!1;try{k=u(E,v)}catch(R){y.error(R);return}v+=1,k&&y.next(E)},error(E){y.error(E)},complete(){y.complete()}}),S={signal:y.signal};f(g,I,S)})}take(u){if(!(this instanceof w))throw new TypeError("illegal invocation");let g=this;return new w(y=>{let v=u;if(v==0)return y.complete();let I=new d({next(E){y.next(E),v-=1,v==0&&y.complete()},error(E){y.error(E)},complete(){y.complete()}}),S={signal:y.signal};f(g,I,S)})}drop(u){if(!(this instanceof w))throw new TypeError("illegal invocation");let g=this;return new w(y=>{let v=u,I=new d({next(E){if(v>0)return v-=1;v==0&&y.next(E)},error(E){y.error(E)},complete(){y.complete()}}),S={signal:y.signal};f(g,I,S)})}flatMap(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{let v=0,I=!1,S=[];function E(V){let L;try{L=u(V,v)}catch(Gt){return y.error(Gt)}v+=1;let lt;try{lt=w.from(L)}catch(Gt){return y.error(Gt)}let Ks=new d({next(Gt){y.next(Gt)},error(Gt){y.error(Gt)},complete(){if(S.length){let Gt=S.shift();E(Gt)}else k=!1,I&&y.complete()}}),Mt={signal:y.signal};f(lt,Ks,Mt)}let k=!1,R=new d({next(V){k?S.push(V):(k=!0,E(V))},error(V){y.error(V)},complete(){I=!0,!k&&!S.length&&y.complete()}}),N={signal:y.signal};f(g,R,N)})}switchMap(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{let v=0,I=!1,S=null;function E(N){let V;try{V=u(N,v)}catch(Mt){return y.error(Mt)}v+=1;let L;try{L=w.from(V)}catch(Mt){return y.error(Mt)}let lt=new d({next(Mt){y.next(Mt)},error(Mt){y.error(Mt)},complete(Mt){I?y.complete():S=null}}),Ks={signal:c([S.signal,y.signal])};f(L,lt,Ks)}let k=new d({next(N){S&&S.abort(),S=new Wt,E(N)},error(N){y.error(N)},complete(){I=!0,S||y.complete()}}),R={signal:y.signal};f(g,k,R)})}catch(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(v=>{let I=new d({next(E){v.next(E)},error(E){let k;try{k=u(E)}catch(L){v.error(L);return}let R;try{R=w.from(k)}catch(L){v.error(L);return}let N=new d({next(L){v.next(L)},error(L){v.error(L)},complete(){v.complete()}}),V={signal:v.signal};f(R,N,V)},complete(){v.complete()}}),S={signal:v.signal};f(g,I,S)})}finally(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{y.addTeardown(u);let v=new d({next(S){y.next(S)},error(S){y.error(S)},complete(){y.complete()}}),I={signal:y.signal};f(g,v,I)})}toArray(u={}){if(!(this instanceof w))throw new TypeError("illegal invocation");let{promise:g,resolve:y,reject:v}=e();if(u.signal){if(u.signal.aborted)return Promise.reject(u.signal.reason);u.signal.addEventListener("abort",()=>{v(u.signal.reason)})}let I=[],S=new d({next(E){I.push(E)},error(E){v(E)},complete(){y(I)}});return f(this,S,u),g}forEach(u,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:y,resolve:v,reject:I}=e(),S=new Wt,E={signal:c([S.signal,g.signal])};if(E.signal.aborted)return I(E.signal.reason),y;E.signal.addEventListener("abort",()=>{I(E.signal.reason)});let k=0,R=new d({next(N){try{u(N,k)}catch(V){I(V),S.abort(V)}k+=1},error(N){I(N)},complete(){v()}});return f(this,R,E),y}every(u,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:y,resolve:v,reject:I}=e(),S=new Wt,E={signal:c([S.signal,g.signal])};if(E.signal.aborted)return I(E.signal.reason),y;E.signal.addEventListener("abort",()=>{I(E.signal.reason)});let k=0,R=new d({next(N){let V=!1;try{V=u(N,k)}catch(L){I(L),S.abort(L)}k+=1,V||(v(!1),S.abort())},error(N){I(N)},complete(){v(!0)}});return f(this,R,E),y}first(u={}){if(!(this instanceof w))throw new TypeError("illegal invocation");let{promise:g,resolve:y,reject:v}=e(),I=new Wt,S={signal:c([I.signal,u.signal])};if(S.signal.aborted)return v(S.signal.reason),g;S.signal.addEventListener("abort",()=>{v(S.signal.reason)});let E=new d({next(k){y(k),I.abort()},error(k){v(k)},complete(){v(new RangeError("No values in Observable"))}});return f(this,E,S),g}last(u={}){if(!(this instanceof w))throw new TypeError("illegal invocation");let{promise:g,resolve:y,reject:v}=e();if(u.signal){if(u.signal.aborted)return v(u.signal.reason),g;u.signal.addEventListener("abort",()=>{v(u.signal.reason)})}let I=null,S=!1,E=new d({next(k){S=!0,I=k},error(k){v(k)},complete(){S?y(I):v(new RangeError("No values in Observable"))}});return f(this,E,u),g}find(u,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:y,resolve:v,reject:I}=e(),S=new Wt,E={signal:c([S.signal,g.signal])};if(E.signal.aborted)return I(E.signal.reason),y;E.signal.addEventListener("abort",()=>{I(E.signal.reason)});let k=0,R=new d({next(N){let V=!1;try{V=u(N,k)}catch(L){I(L),S.abort(L)}k+=1,V&&(v(N),S.abort())},error(N){I(N)},complete(){v()}});return f(this,R,E),y}some(u,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:y,resolve:v,reject:I}=e(),S=new Wt,E={signal:c([S.signal,g.signal])};if(E.signal.aborted)return I(E.signal.reason),y;E.signal.addEventListener("abort",()=>{I(E.signal.reason)});let k=0,R=new d({next(N){let V=!1;try{V=u(N,k)}catch(L){I(L),S.abort(L)}k+=1,V&&(v(!0),S.abort())},error(N){I(N)},complete(){v(!1)}});return f(this,R,E),y}reduce(u,g,y={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:v,resolve:I,reject:S}=e(),E=new Wt,k={signal:c([E.signal,y.signal])};if(k.signal.aborted)return S(k.signal.reason),v;k.signal.addEventListener("abort",()=>{S(k.signal.reason)},{once:!0});let R=0,N=arguments.length>1?g:Xa,V=new d({next(L){if(N===Xa){N=L,R++;return}try{let lt=u(N,L,R);R++,N=lt}catch(lt){S(lt),E.abort(lt);return}},error(L){S(L)},complete(){N!==Xa?I(N):S(new TypeError("no initial value provided and no values emitted"))}});return f(this,V,k),v}}return n(w.prototype,"subscribe"),[w,m]})();function zd(){return typeof globalThis.Observable=="function"}function jd(){Object.defineProperties(globalThis,{Observable:{value:Vd,configurable:!0,writable:!0},Subscriber:{value:gu,configurable:!0,writable:!0}}),EventTarget.prototype.when=function(n,t={}){if(or()&&!ke(document))return;let e=this;return new Vd(r=>{if(!e||r.signal.aborted)return;let i=o=>{r.next(o)};e.addEventListener(n,i,{capture:t.capture||!1,passive:t.passive,once:!1,signal:r.signal})})}}function Ya(n,t,e){let r=n.filter(i=>!i.hasAttribute("disabled"));for(let i of r){let o=i.getBoundingClientRect();if(t>=o.left&&t<=o.right&&e>=o.top&&e<=o.bottom)return i}return null}function Fd(n,t,e,r){if(!r)return null;let i=n.filter(s=>!s.hasAttribute("disabled")),o=r.getBoundingClientRect();for(let s of i){let a=s.getBoundingClientRect();if(!(o.right<a.left||o.left>a.right||o.bottom<a.top||o.top>a.bottom))return s}return null}function Bd(n,t,e,r){let i=n.filter(c=>!c.hasAttribute("disabled"));if(i.length===0)return null;let o,s;if(r){let c=r.getBoundingClientRect();o=c.left+c.width/2,s=c.top+c.height/2}else o=t,s=e;let a=null,l=1/0;for(let c of i){let d=c.getBoundingClientRect(),h=d.left+d.width/2,f=d.top+d.height/2,m=Math.sqrt(Math.pow(o-h,2)+Math.pow(s-f,2));m<l&&(l=m,a=c)}return a}function Ud(n,t,e,r){let i=n.filter(l=>!l.hasAttribute("disabled"));if(i.length===0)return null;let o;if(r){let l=r.getBoundingClientRect();o=[{x:l.left,y:l.top},{x:l.right,y:l.top},{x:l.left,y:l.bottom},{x:l.right,y:l.bottom}]}else o=[{x:t,y:e},{x:t,y:e},{x:t,y:e},{x:t,y:e}];let s=null,a=1/0;for(let l of i){let c=l.getBoundingClientRect(),d=[{x:c.left,y:c.top},{x:c.right,y:c.top},{x:c.left,y:c.bottom},{x:c.right,y:c.bottom}],h=0,f=0;for(let w of o)for(let x of d){let u=Math.sqrt(Math.pow(w.x-x.x,2)+Math.pow(w.y-x.y,2));h+=u,f++}let m=h/f;m<a&&(a=m,s=l)}return s}function bu(n,t,e){let r=n.getBoundingClientRect();return t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom}function yu(n,t,e,r,i){let o=i&&i.length>0?n.filter(g=>i.includes(g)):n.filter(g=>g.tagName==="SLOT"&&g.hasAttribute("part")&&g.getAttribute("part")?.includes("drags")),a=n.filter(g=>!o.includes(g));if(o.length===0&&a.length===0)return null;let l;if(r){let g=r.getBoundingClientRect();l=[{x:g.left,y:g.top},{x:g.right,y:g.top},{x:g.left,y:g.bottom},{x:g.right,y:g.bottom}]}else l=[{x:t,y:e},{x:t,y:e},{x:t,y:e},{x:t,y:e}];let c=g=>{let y=g.getBoundingClientRect(),v=[{x:y.left,y:y.top},{x:y.right,y:y.top},{x:y.left,y:y.bottom},{x:y.right,y:y.bottom}],I=0,S=0;for(let E of l)for(let k of v){let R=Math.sqrt(Math.pow(E.x-k.x,2)+Math.pow(E.y-k.y,2));I+=R,S++}return I/S},d=null,h=1/0;for(let g of o){let y=c(g);y<h&&(h=y,d=g)}let f=null,m=1/0;for(let g of a){let y=c(g);y<m&&(m=y,f=g)}if(d&&r){let g=r.getBoundingClientRect(),y=d.getBoundingClientRect(),v=g.left+g.width/2,I=g.top+g.height/2;if(v>=y.left&&v<=y.right&&I>=y.top&&I<=y.bottom)return d}if(f&&bu(f,t,e))return f;let x=r?.getAttribute("data-drag-origin")==="droppable"?.85:1.5;return d&&f?h<=m*x?d:f:d||f}function Hd(n){switch(n){case"pointerWithin":return Ya;case"rectangleIntersection":return Fd;case"closestCenter":return Bd;case"closestCorners":return Ud;case"closestCornersWithInventoryPriority":return yu;default:return Ya}}function Nr(n,t,e,r,i="pointerWithin",o){return Hd(i)(n,t,e,r,o)}function Ee(n,t){let e=n.composedPath?n.composedPath():[n.target];for(let r of e)if(r instanceof HTMLElement&&r.tagName!=="SLOT"){if(r.matches(t)||r.hasAttribute("qti-draggable"))return r;let i=r.closest(t)||r.closest('[qti-draggable="true"]');if(i)return i}return null}function Ui(n){return n?n.hasAttribute("disabled")?!0:n.internals?.states?.has("disabled")??!1:!1}var Ka=n=>n?.internals;function Tt(n,t,e){let r=Ka(n)?.states;r&&(e?r.add(t):r.delete(t))}function wn(n,t){return Ka(n)?.states?.has(t)??!1}function Hi(n){Tt(n,"dragging",!1),Tt(n,"placeholder",!1),Tt(n,"return-anchor",!1)}function nr(n){return wn(n,"dragging")||wn(n,"placeholder")}function ne(n,t,e){if(!n)return;e?n.setAttribute(t,""):n.removeAttribute(t);let r=Ka(n)?.states;if(r){e?r.add(t):r.delete(t);return}let i=new Set((n.getAttribute("part")??"").split(/\s+/).filter(Boolean));i.has("drop")&&(e?i.add(t):i.delete(t),n.setAttribute("part",[...i].join(" ")))}function $r(n,t){ne(n,"filled",t)}function Lr(n,t){let e=[];return n.forEach(r=>{let i=[];r.tagName.toLowerCase()==="slot"?i=r.assignedElements({flatten:!0}).filter(a=>a.getAttribute("identifier")===t):i=Array.from(r.querySelectorAll(`[identifier="${t}"]`)),e.push(...i)}),e}function Wd(n,t){let e=n.find(i=>i.getAttribute("identifier")===t);if(!e)return 1;let r=e.getAttribute("match-max");return r?parseInt(r,10)||0:1}var Ja={origin:{x:0,y:0},scale:{x:1,y:1}},xn=100,vu=n=>{let t=n.fullscreenElement??n.webkitFullscreenElement??null;for(;t instanceof HTMLElement;){let e=t.shadowRoot?.fullscreenElement??null;if(!e||e===t)break;t=e}return t instanceof HTMLElement?t:null},wu=n=>{let t=n.shadowRoot;return t?t.querySelector("slot:not([name])")?n:t:n},xu=(n,t)=>{let e=t;for(;e;){if(e===n)return!0;e=e.parentNode??e.host??null}return!1},Za=(n,t)=>{let e=n.ownerDocument??document,r=t??e.body,i=vu(e);return i&&!xu(i,r)?wu(i):r},tc=n=>{let e=(n.ownerDocument??document).createElement("div");e.style.cssText=`position:fixed;left:0;top:0;width:${xn}px;height:${xn}px;margin:0;padding:0;border:0;visibility:hidden;pointer-events:none;`,n.appendChild(e);let r=e.getBoundingClientRect();return e.remove(),{origin:{x:r.left,y:r.top},scale:{x:r.width/xn||1,y:r.height/xn||1}}},Qd=(n,t,e)=>({x:(t-n.origin.x)/n.scale.x,y:(e-n.origin.y)/n.scale.y});zd()||jd();var Gd=new WeakSet;function qu(n){!n||Gd.has(n)||(n.addEventListener("touchmove",()=>{},{capture:!1,passive:!1}),Gd.add(n))}var Xd=n=>!!n.internals?.states,qn=(n,t,e,r='slot[part="drags"]',i="pointerWithin")=>{class o extends n{constructor(){super(...arguments),this.trackedDraggables=[],this.trackedDroppables=[],this.trackedDragContainers=[],this.allDropzones=[],this.collisionDetectionAlgorithm=i,this.dragState={dragging:!1,dragSource:null,dragClone:null,startOffset:{x:0,y:0},currentTarget:null,sourceDroppable:null,inputType:null,returnAnchorItems:[]},this.cloneFrame=Ja,this.subscriptions=[],this.dragSubscriptions=[],this.lastPointerDownAt=0,this.lastTouchStartAt=0,this.#t=new Set,this.#e=new Set,this.#r=a=>{let l=a;if(l.context!==yr)return;let c=l.contextTarget;c instanceof HTMLElement&&this.#e.add(c)}}#t;isDragDropEnabled(){return!0}publishDraggablesSelector(){let a=this.isDragDropEnabled()?t:null;this._interactionContext.draggablesSelector!==a&&(this._interactionContext={...this._interactionContext,draggablesSelector:a})}connectedCallback(){super.connectedCallback(),this.addEventListener("context-request",this.#r,{capture:!0}),qu(this.ownerDocument?.defaultView),this.publishDraggablesSelector(),this.setupDragDrop()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("context-request",this.#r,{capture:!0}),this.#e.clear(),this.cleanup()}async setupDragDrop(){await this.updateComplete,this.cacheInteractiveElements(),this.afterCache(),this.setupDragObservables()}afterCache(){}removeChipFromDroppable(a,l){l.remove()}#e;#r;registeredMatching(a){for(let l of this.#e)l.isConnected||this.#e.delete(l);return[...this.#e].filter(l=>l.matches(a))}cacheInteractiveElements(){let a=(k,R)=>Array.from(R?.querySelectorAll(k)??[]),l=a(t,this),c=a(t,this.shadowRoot),d=a('[qti-draggable="true"]:not([data-drag-clone])',this),h=a('[qti-draggable="true"]:not([data-drag-clone])',this.shadowRoot),f=this.registeredMatching(t);this.trackedDraggables=Array.from(new Set([...l,...c,...d,...h,...f]));let m=a(e,this),w=a(e,this.shadowRoot);this.trackedDroppables=Array.from(new Set([...m,...w]));let x=a(r,this),u=a(r,this.shadowRoot);this.trackedDragContainers=Array.from(new Set([...x,...u])),this.allDropzones=[...this.trackedDroppables,...this.trackedDragContainers];let g=this.isDragDropEnabled(),y=new Set(this.trackedDraggables),v=new Set(this.trackedDroppables),I=g?y:new Set,S=g?v:new Set,E=new Set([...y,...v].filter(Xd));for(let k of this.#t)E.has(k)||(k.internals.states.delete("drag"),k.internals.states.delete("droppable"));for(let k of E){let R=I.has(k),N=!R&&S.has(k);R?k.internals.states.add("drag"):k.internals.states.delete("drag"),N?k.internals.states.add("droppable"):k.internals.states.delete("droppable")}this.#t=E,this.trackedDraggables.forEach(k=>{let R=nr(k);g&&!R?(k.style.cursor="grab",k.style.userSelect="none",k.style.touchAction="none",k.style.webkitUserSelect="none",k.style.webkitTouchCallout="none",k.setAttribute("qti-draggable","true"),k.setAttribute("tabindex","0")):(k.style.cursor="",k.style.userSelect="",k.style.touchAction="",k.style.webkitUserSelect="",k.style.webkitTouchCallout="",k.removeAttribute("qti-draggable"),k.getAttribute("tabindex")==="0"&&k.removeAttribute("tabindex"))})}setupDragObservables(){let a=this.shadowRoot;if(!a){console.error("\u274C [Observable DnD] No shadow root found!");return}let l=a.when("pointerdown").filter(m=>{if(!m.isTrusted)return!1;let w=Ee(m,t),x=this.disabled||this.readonly,u=Ui(w)||nr(w),g=Date.now()-this.lastTouchStartAt<50;return w&&m.isPrimary!==!1&&m.button===0&&!x&&!u&&!g}).subscribe(m=>{this.lastPointerDownAt=Date.now();let w=Ee(m,t);if(!w){console.warn("\u26A0\uFE0F [Observable DnD] No draggable target found");return}m.pointerType==="touch"&&(m.preventDefault(),m.stopPropagation());let x=m.isTrusted?m.pointerType==="touch"?100:10:0;if(this.dragState.activationTimeout&&clearTimeout(this.dragState.activationTimeout),x===0){this.dragState.dragging||this.initiateDrag(w,m.clientX,m.clientY,m.pointerType,"pointer",m.pointerId,m.isTrusted);return}let u=()=>{this.dragState.activationTimeout&&(clearTimeout(this.dragState.activationTimeout),this.dragState.activationTimeout=void 0),document.removeEventListener("pointerup",u,!0),document.removeEventListener("pointercancel",u,!0)};document.addEventListener("pointerup",u,{once:!0,capture:!0}),document.addEventListener("pointercancel",u,{once:!0,capture:!0}),this.dragState.activationTimeout=window.setTimeout(()=>{this.dragState.activationTimeout=void 0,document.removeEventListener("pointerup",u,!0),document.removeEventListener("pointercancel",u,!0),this.dragState.dragging||this.initiateDrag(w,m.clientX,m.clientY,m.pointerType,"pointer",m.pointerId,m.isTrusted)},x)}),c=a.when("mousedown").filter(m=>{let w=Ee(m,t),x=this.disabled||this.readonly,u=Ui(w)||nr(w),g=m.button===0,y=Date.now()-this.lastPointerDownAt<50;return w&&g&&!x&&!u&&!y}).subscribe(m=>{let w=Ee(m,t);!w||this.dragState.dragging||(m.preventDefault(),this.initiateDrag(w,m.clientX,m.clientY,"mouse","mouse",void 0,m.isTrusted))}),d=a.when("touchstart").filter(m=>{let w=Ee(m,t),x=this.disabled||this.readonly,u=Ui(w)||nr(w),g=!!(m.touches?.[0]||m.changedTouches?.[0]),y=Date.now()-this.lastPointerDownAt<50;return w&&g&&!x&&!u&&!y}).subscribe(m=>{let w=Ee(m,t),x=m.touches?.[0]||m.changedTouches?.[0];!w||!x||this.dragState.dragging||(this.lastTouchStartAt=Date.now(),m.preventDefault(),m.stopPropagation(),this.initiateDrag(w,x.clientX,x.clientY,"touch","touch",void 0,m.isTrusted))}),h={dragging:!1,dragElement:null,dragIndex:0,dropIndex:0,dropElement:null},f=a.when("keydown").subscribe(m=>{let w=this.trackedDraggables.filter(u=>!nr(u)),x=[...this.trackedDroppables,...this.trackedDragContainers];if(h.dragging)switch(m.code){case"ArrowRight":case"ArrowDown":{m.preventDefault();let u=(h.dropIndex+1)%x.length;h={...h,dropIndex:u,dropElement:x[u]};break}case"ArrowLeft":case"ArrowUp":{m.preventDefault();let u=(h.dropIndex-1+x.length)%x.length;h={...h,dropIndex:u,dropElement:x[u]};break}case"Space":case"Enter":case"Tab":{m.preventDefault(),h.dragElement&&h.dropElement&&(this.allowDrop(h.dragElement,h.dropElement)||this.trackedDragContainers.includes(h.dropElement)?this.handleDrop(h.dragElement,h.dropElement):this.handleInvalidDrop(h.dragElement)),this.trackedDraggables.forEach(u=>u.removeAttribute("data-keyboard-dragging")),this.saveResponse(),h={dragging:!1,dragElement:null,dragIndex:0,dropIndex:0,dropElement:null};break}case"Escape":{m.preventDefault(),this.trackedDraggables.forEach(u=>u.removeAttribute("data-keyboard-dragging")),h={dragging:!1,dragElement:null,dragIndex:0,dropIndex:0,dropElement:null};break}}else{let u=Ee(m,t),g=this.disabled||this.readonly,y=Ui(u)||nr(u);u&&["Space","Enter"].includes(m.code)&&!g&&!y&&(m.preventDefault(),u.setAttribute("data-keyboard-dragging","true"),h={dragging:!0,dragElement:u,dragIndex:w.indexOf(u),dropIndex:0,dropElement:x[0]})}this.allDropzones.forEach(u=>u.removeAttribute("hover")),h.dragging&&h.dropElement&&(h.dropElement.setAttribute("hover",""),h.dropElement.hasAttribute("tabindex")&&h.dropElement.getAttribute("tabindex")!=="-1"&&h.dropElement.focus())});this.subscriptions.push(l,c,d,f)}initiateDrag(a,l,c,d,h="pointer",f,m){if(this.dragState.dragging){console.warn("\u26A0\uFE0F [Observable DnD] Already dragging, ignoring initiateDrag");return}if(a.hasAttribute("data-drag-clone")){console.warn("\u26A0\uFE0F [Observable DnD] Attempted to drag visual clone, ignoring");return}let w=y=>y.contains(a)||!!y.shadowRoot?.contains(a),x=this.trackedDroppables.some(w),u=this.trackedDroppables.find(w)||null;a.getAnimations().forEach(y=>y.cancel());let g=a.getBoundingClientRect();if(this.dragState={dragging:!0,dragSource:a,dragClone:this.createDragClone(a,g),startOffset:{x:l-g.left,y:c-g.top},currentTarget:null,sourceDroppable:u,inputType:d,pointerId:f,startedFromTrustedEvent:m,initialCoordinates:{x:l,y:c},returnAnchorItems:[]},x){this.dragState.dragClone?.setAttribute("data-drag-origin","droppable"),this.removeChipFromDroppable(u,a),this.cacheInteractiveElements(),u&&u.setAttribute("data-drag-source","true");let y=a.getAttribute("identifier");if(y){let v=Lr(this.trackedDragContainers,y);v.forEach(I=>Tt(I,"return-anchor",!0)),this.dragState.returnAnchorItems=v}}else this.dragState.dragClone?.setAttribute("data-drag-origin","inventory"),Tt(a,"dragging",!0);this.updateClonePosition(l,c),this.activateAllDroppables(),this.watchDragCloneHost(),this.setupMoveObservables(d,h)}setupMoveObservables(a,l="pointer"){if(a==="touch"){if(l==="pointer")try{let v=this.dragState.dragSource,I=this.dragState.pointerId;v&&I!==void 0&&v.setPointerCapture&&v.setPointerCapture(I)}catch{}let g=v=>{v.cancelable&&(v.preventDefault(),l==="pointer"&&v.stopPropagation())};document.addEventListener("touchmove",g,{passive:!1,capture:!0}),document.addEventListener("touchstart",g,{passive:!1,capture:!0}),document.addEventListener("touchend",g,{passive:!1,capture:!0}),document.addEventListener("gesturestart",g,{passive:!1}),document.addEventListener("gesturechange",g,{passive:!1}),document.addEventListener("gestureend",g,{passive:!1});let y=()=>{if(document.removeEventListener("touchmove",g,{capture:!0}),document.removeEventListener("touchstart",g,{capture:!0}),document.removeEventListener("touchend",g,{capture:!0}),document.removeEventListener("gesturestart",g),document.removeEventListener("gesturechange",g),document.removeEventListener("gestureend",g),l==="pointer")try{let v=this.dragState.dragSource,I=this.dragState.pointerId;v&&I!==void 0&&v.releasePointerCapture&&v.releasePointerCapture(I)}catch{}};this.dragState.touchCleanup=y}let c=l==="mouse"?"mousemove":l==="touch"?"touchmove":"pointermove",d=l==="mouse"?"mouseup":l==="touch"?"touchend":"pointerup",h=g=>{let y=this.dragState.startedFromTrustedEvent;return y===void 0||g.isTrusted===y},f=document.when(c).takeUntil(document.when(d)).subscribe({next:g=>{if(h(g)){if(g.preventDefault(),g.stopPropagation(),l==="touch"){let y=g.touches?.[0]||g.changedTouches?.[0];if(!y)return;this.handleDragMove(y.clientX,y.clientY);return}if(l==="mouse"){let y=g;if(typeof y.buttons=="number"&&(y.buttons&1)!==1)return}this.handleDragMove(g.clientX,g.clientY)}}}),m=document.when(d).subscribe({next:g=>{h(g)&&(g.preventDefault(),g.stopPropagation(),this.handleDragEnd())}}),w=l==="touch"?document.when("touchcancel").subscribe({next:g=>{h(g)&&this.handleDragEnd()}}):l==="mouse"?null:document.when("pointercancel").subscribe({next:g=>{h(g)&&this.handleDragEnd()}}),x=document.when("keydown").filter(g=>g.key==="Escape").subscribe({next:g=>{h(g)&&this.handleDragEnd()}}),u=[f,m,x];w&&u.push(w),this.dragSubscriptions.push(...u)}handleDragMove(a,l){if(!this.dragState.dragging||!this.dragState.dragClone)return;this.updateClonePosition(a,l);let c=Nr(this.allDropzones,a,l,this.dragState.dragClone,this.collisionDetectionAlgorithm,this.trackedDragContainers),d=Date.now(),h=d-(this.dragState.lastTargetChangeTime||0);c!==this.dragState.currentTarget&&(c===null||h>=50)&&(this.allDropzones.forEach(m=>ne(m,"hover",!1)),c&&ne(c,"hover",!0),this.dragState.currentTarget=c,this.dragState.lastTargetChangeTime=d)}handleDragEnd(){if(!this.dragState.dragging)return;let{dragSource:a,dragClone:l,currentTarget:c,sourceDroppable:d}=this.dragState,h=c;if(l){let w=l.getBoundingClientRect();h=Nr(this.allDropzones,w.left+w.width/2,w.top+w.height/2,l,this.collisionDetectionAlgorithm,this.trackedDragContainers)??c}!!a&&!!h&&this.allowDrop(a,h)&&a&&h?(this.handleDrop(a,h),Tt(a,"dragging",!1)):this.handleInvalidDrop(a),l&&l.remove(),(this.dragState.returnAnchorItems||[]).forEach(w=>{Tt(w,"return-anchor",!1)}),this.dragState.touchCleanup&&this.dragState.touchCleanup(),this.resetDragState(),this.deactivateAllDroppables(),this.saveResponse(),d&&d.removeAttribute("data-drag-source"),this.cacheInteractiveElements();let m=this.checkAllMaxAssociations;typeof m=="function"&&m.call(this)}allowDrop(a,l){return this.trackedDroppables.includes(l)||this.trackedDragContainers.includes(l)}handleInvalidDrop(a){Hi(a)}createDragClone(a,l){let c=a.cloneNode(!0),d=window.getComputedStyle(a);for(let f=0;f<d.length;f++){let m=d[f];c.style.setProperty(m,d.getPropertyValue(m))}let h=Za(a.isConnected?a:this,this.dragCloneRoot());return this.cloneFrame=tc(h),c.style.position="fixed",c.style.width=`${l.width/this.cloneFrame.scale.x}px`,c.style.height=`${l.height/this.cloneFrame.scale.y}px`,c.style.zIndex="9999",c.style.pointerEvents="none",c.style.touchAction="none",c.style.userSelect="none",c.style.opacity="0.8",c.removeAttribute("qti-draggable"),c.removeAttribute("tabindex"),c.setAttribute("data-drag-clone","true"),c.setAttribute("data-drag-interaction",this.tagName.toLowerCase()),h.appendChild(c),c}dragCloneRoot(){let a=this.getRootNode();return a instanceof ShadowRoot?a:null}updateClonePosition(a,l){if(this.dragState.lastCoordinates={x:a,y:l},!this.dragState.dragClone)return;let{startOffset:c}=this.dragState,{x:d,y:h}=Qd(this.cloneFrame,a-c.x,l-c.y);this.dragState.dragClone.style.left=`${d}px`,this.dragState.dragClone.style.top=`${h}px`}watchDragCloneHost(){let a=this.ownerDocument??document,l=()=>{let{dragClone:c,dragSource:d,lastCoordinates:h}=this.dragState;if(!c)return;let f=d?.isConnected?d:this,m=Za(f,this.dragCloneRoot());m!==c.parentNode&&(m.appendChild(c),this.cloneFrame=tc(m),h&&this.updateClonePosition(h.x,h.y))};a.addEventListener("fullscreenchange",l),a.addEventListener("webkitfullscreenchange",l),this.dragSubscriptions.push({unsubscribe:()=>{a.removeEventListener("fullscreenchange",l),a.removeEventListener("webkitfullscreenchange",l)}})}activateAllDroppables(){this.setInternalsState("dragzone-enabled",!0),this.setInternalsState("dragzone-active",!0),this.allDropzones.forEach(a=>{ne(a,"enabled",!0),ne(a,"active",!0)})}deactivateAllDroppables(){this.setInternalsState("dragzone-enabled",!1),this.setInternalsState("dragzone-active",!1),this.allDropzones.forEach(a=>{ne(a,"enabled",!1),ne(a,"active",!1),ne(a,"hover",!1)})}resetDragState(){if(this.dragState.activationTimeout&&clearTimeout(this.dragState.activationTimeout),(this.dragState.returnAnchorItems||[]).forEach(a=>{Tt(a,"return-anchor",!1)}),this.dragState.touchCleanup)try{this.dragState.touchCleanup()}catch(a){console.warn("\u26A0\uFE0F [Observable DnD] Error during touch cleanup:",a)}this.dragSubscriptions.forEach(a=>{try{a&&typeof a.unsubscribe=="function"&&a.unsubscribe()}catch(l){console.warn("\u26A0\uFE0F [Observable DnD] Error unsubscribing:",l)}}),this.dragSubscriptions=[],this.cloneFrame=Ja,this.dragState={dragging:!1,dragSource:null,dragClone:null,startOffset:{x:0,y:0},currentTarget:null,sourceDroppable:null,inputType:null,pointerId:void 0,startedFromTrustedEvent:void 0,touchCleanup:void 0,returnAnchorItems:[]}}setInternalsState(a,l){let c=this._internals;c?.states&&(l?c.states.add(a):c.states.delete(a))}cleanup(){this.subscriptions.forEach(a=>{try{a.unsubscribe()}catch{}}),this.subscriptions=[],this.dragState.dragClone&&this.dragState.dragClone.remove();for(let a of this.#t)Xd(a)&&(a.internals.states.delete("drag"),a.internals.states.delete("droppable"));this.#t.clear(),this.resetDragState()}}return o};var Yd={duration:250,easing:"ease",fill:"both"};function ec(n){let t=n.getBoundingClientRect();return{left:t.left,top:t.top,width:t.width,height:t.height}}function Kd(n){return{left:n.left,top:n.top,width:n.width,height:n.height}}function Se(n){let t=new Map;return n.forEach(e=>{t.set(e,ec(e))}),t}function Jd(n,t){return{deltaX:n.left-t.left,deltaY:n.top-t.top,deltaW:n.width/t.width,deltaH:n.height/t.height}}function Cn(n){if(typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;if(!n)return 1;let t=getComputedStyle(n).getPropertyValue("--qti-motion").trim();if(t==="")return 1;let e=Number.parseFloat(t);return Number.isFinite(e)&&e>0?e:0}function rc(n){return Cn(n)>0}function kn(n,t,e={}){let r=Cn(n);if(r<=0)return null;let i=ec(n),{deltaX:o,deltaY:s,deltaW:a,deltaH:l}=Jd(t,i);if(o===0&&s===0&&a===1&&l===1)return null;let{duration:c,easing:d,fill:h}={...Yd,...e};return n.animate([{transformOrigin:"top left",transform:`translate(${o}px, ${s}px) scale(${a}, ${l})`},{transformOrigin:"top left",transform:"none"}],{duration:c*r,easing:d,fill:h})}function Ae(n,t={}){let e=new Map;return n.forEach((r,i)=>{if(!(i instanceof HTMLElement))return;let o=kn(i,r,t);o&&e.set(i,o)}),e}var Wi=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Rt=(n,t,e,r='slot[part="drags"]',i="closestCornersWithInventoryPriority")=>{let o=Qa(n,t,e,r),s=qn(o,t,e,r,i);class a extends s{constructor(){super(...arguments),this.minAssociations=1,this._maxAssociations=0,this._maxAssociationsDefaultApplied=!1,this._response=[],this._dragDrop={dragsByTarget:{},countByTarget:{},nodesByTarget:{}},this.#t=new WeakMap,this._dropBlockedDueToMax=!1,this.flipAnimationConfig={duration:200,easing:"ease"},this._enableFlipAnimations=!0,this._pendingResponse=void 0}get maxAssociations(){if(!this._maxAssociationsDefaultApplied){this._maxAssociationsDefaultApplied=!0;let c=this.tagName?.toLowerCase()||"";(c==="qti-graphic-gap-match-interaction"||c==="qti-gap-match-interaction")&&!this.hasAttribute("max-associations")&&this._maxAssociations===0&&(this._maxAssociations=1)}return this._maxAssociations}set maxAssociations(c){let d=this._maxAssociations;this._maxAssociations=c,this.requestUpdate("maxAssociations",d)}#t;isSwapTarget(c){let d=this.dragState.sourceDroppable,h=parseInt(c.getAttribute("match-max")||"1",10);return(Number.isNaN(h)?1:h)===1&&this.isDeclarativeTarget(c)&&!!d&&d!==c&&this.trackedDroppables.includes(d)}isDeclarativeTarget(c){return c?c.acceptsDeclarativeDrops===!0?!0:c.hasAttribute("data-declarative-drops"):!1}chipsIn(c){return this.isDeclarativeTarget(c)?[...this.#t.get(c)??[]]:Array.from(c.querySelectorAll(t))}droppableHolding(c){return this.trackedDroppables.find(d=>this.chipsIn(d).includes(c)||d.contains(c)||!!d.shadowRoot?.contains(c))??null}placeChip(c,d){this.#t.set(c,[...this.#t.get(c)??[],d])}removeChipFromDroppable(c,d){let h=c??this.droppableHolding(d);if(h&&this.isDeclarativeTarget(h)){let f=(this.#t.get(h)??[]).filter(m=>m!==d);this.#t.set(h,f),f.length===0&&$r(h,!1),this.syncDragDropState();return}d.remove()}clearChips(c){this.isDeclarativeTarget(c)?(this.#t.set(c,[]),this.syncDragDropState()):this.chipsIn(c).forEach(d=>d.remove()),$r(c,!1)}syncDragDropState(){let c={},d={},h={};for(let f of this.trackedDroppables){let m=f.getAttribute("identifier");if(!m)continue;let w=this.chipsIn(f),x=this.isDeclarativeTarget(f)?w:Array.from(f.querySelectorAll('[qti-draggable="true"]'));c[m]=w.map(u=>u.getAttribute("identifier")).filter(u=>!!u),d[m]=Math.max(w.length,x.length),h[m]=w}this._dragDrop={dragsByTarget:c,countByTarget:d,nodesByTarget:h},this.requestUpdate()}responseFromState(){this.syncDragDropState();let{dragsByTarget:c}=this._dragDrop;return this.trackedDroppables.flatMap(d=>{let h=d.getAttribute("identifier");return h?(c[h]??[]).map(f=>`${f} ${h}`):[]})}totalAssociationsFromState(){return this.syncDragDropState(),Object.values(this._dragDrop.countByTarget).reduce((c,d)=>c+d,0)}droppableAtCapacityFromState(c){let d=parseInt(c.getAttribute("match-max")||"1",10),h=Number.isNaN(d)?1:d;if(h===0)return!1;let f=c.getAttribute("identifier");return(f?this._dragDrop.countByTarget[f]??0:0)>=h}set disableAnimations(c){this._enableFlipAnimations=!c}get disableAnimations(){return!this._enableFlipAnimations}get enableFlipAnimations(){return this._enableFlipAnimations&&rc(this)}collectAutoSizeTargets(){return{draggables:this.trackedDraggables,droppables:this.trackedDroppables,dragContainers:this.trackedDragContainers}}get response(){let c=this.getResponse,d=typeof c=="function"?c.call(this):void 0;return(Array.isArray(d)?d:(this.cacheInteractiveElements(),this.responseFromState())).join(",")}set response(c){if(Array.isArray(c)){if(!this.trackedDroppables||this.trackedDroppables.length===0){this._pendingResponse=c,this._internals.setFormValue(JSON.stringify(c));return}let d=this.getValue,h=typeof d=="function"?d.call(this,c):c,f=Array.isArray(h)?h:typeof h=="string"&&h.length>0?[h]:[];this.reset(!1),f.forEach(x=>this.placeResponse(x));let m=this.getResponse,w=typeof m=="function"?m.call(this):void 0;this._response=Array.isArray(w)?w:(this.cacheInteractiveElements(),this.responseFromState())}else this._response=typeof c=="string"&&c.length>0?[c]:[];this._internals.setFormValue(JSON.stringify(this._response))}afterCache(){if(this.updateMinDimensionsForDropZones(),this.applyConfiguredChoicesContainerWidth(),this._pendingResponse!==void 0){let c=this._pendingResponse;this._pendingResponse=void 0,this.response=c}}get autoSizeDropzoneWidth(){return!this.dataset.choicesContainerWidth}applyConfiguredChoicesContainerWidth(){let c=this.dataset.choicesContainerWidth;c&&this.trackedDroppables.forEach(d=>{d.style.width=`${c}px`,d.style.boxSizing="border-box"})}shouldTreatBlockedMaxAsInvalid(){return!0}shouldReturnToInventoryOnInventoryDrop(){return!1}getFirstMessageAttribute(c){for(let h of c){let f=this.getAttribute(h);if(f&&f.trim().length>0)return f}let d=c.map(h=>h.toLowerCase());for(let h of Array.from(this.attributes))if(d.includes(h.name.toLowerCase())&&h.value.trim().length>0)return h.value;return null}allowDrop(c,d){if(this.trackedDragContainers.includes(d))return!0;let h=this.trackedDroppables.includes(d),f=d.hasAttribute("disabled"),m=d.hasAttribute("data-drag-source");return f&&this.isSwapTarget(d)?!0:h&&(!f||m)}handleDrop(c,d){let h=this.dragState.dragClone?.getBoundingClientRect();this.dropDraggableInDroppable(c,d,h);let f=c.getAttribute("identifier");f&&this.updateInventoryBasedOnMatchMax(f),this.validate(),this.reportValidity()}handleInvalidDrop(c){let d=this.dragState.sourceDroppable,h=this.dragState.currentTarget,f=!h,m=this.trackedDragContainers[0]||null;if(!c)return;if(d&&f&&m)this.dropDraggableInDroppable(c,m);else if(d&&this.trackedDroppables.includes(d))this.dropDraggableInDroppable(c,d,this.dragState.dragClone?.getBoundingClientRect());else if(wn(c,"dragging")){this.restoreInventoryItem(c,this.dragState.dragClone?.getBoundingClientRect());let g=c.getAttribute("identifier");g&&this.updateInventoryBasedOnMatchMax(g),this.cacheInteractiveElements(),this.checkAllMaxAssociations()}let w=this.totalAssociationsFromState(),x=this.maxAssociations>0&&w>=this.maxAssociations,u=!!h&&h.hasAttribute("disabled")&&!h.hasAttribute("data-drag-source");this._dropBlockedDueToMax=u&&x,this.validate(),this.reportValidity()}animateReturn(c,d){!c||!d||!this.enableFlipAnimations||requestAnimationFrame(()=>{kn(c,Kd(d),this.flipAnimationConfig)})}restoreInventoryItem(c,d){Hi(c),c.style.display="",c.style.position="",this.animateReturn(c,d)}placeResponse(c){let[d,...h]=c.split(" ").reverse(),f=this.trackedDroppables.find(m=>m.getAttribute("identifier")===d);f&&h.forEach(m=>{if(!m)return;let x=Lr(this.trackedDragContainers,m).at(0)||this.trackedDraggables.find(u=>u.getAttribute("identifier")===m);x&&this.dropDraggableInDroppable(x,f)})}dropDraggableInDroppable(c,d,h){if(this.trackedDragContainers.includes(d)){if(!this.dragState.sourceDroppable){if(this.shouldReturnToInventoryOnInventoryDrop()){this.returnToInventory(c,h),this._dropBlockedDueToMax=!1,this.validate();return}this.restoreInventoryItem(c,h),this.cacheInteractiveElements(),this.checkAllMaxAssociations(),this._dropBlockedDueToMax=!1,this.validate();return}let I=c.getAttribute("identifier");this.removeChipFromDroppable(this.droppableHolding(c),c),I&&this.restoreOriginalInInventory(I,h),this.cacheInteractiveElements(),this.checkAllMaxAssociations(),this._dropBlockedDueToMax=!1,this.validate();return}let m=parseInt(d.getAttribute("match-max")||"1",10),w=Number.isNaN(m)?1:m,x=w===0||w>1,u=Array.from(d.querySelectorAll('[qti-draggable="true"]')),g=this.enableFlipAnimations&&u.length>0?Se(u):null;if(!x){let I=this.chipsIn(d)[0]??(this.isDeclarativeTarget(d)?null:d.querySelector('[qti-draggable="true"]'));if(I){let S=I.getAttribute("identifier"),E=I.getBoundingClientRect();this.removeChipFromDroppable(d,I);let k=this.dragState.sourceDroppable,R=this.isDeclarativeTarget(d)&&k&&k!==d&&this.isDeclarativeTarget(k)?k:null;R?(this.placeChip(R,I),$r(R,!0),this.animateReturn(I,E)):S&&this.restoreOriginalInInventory(S,E)}}let y=c.cloneNode(!0);y.removeAttribute("style"),y.removeAttribute("data-keyboard-dragging"),y.setAttribute("qti-draggable","true"),y.setAttribute("tabindex","0"),this.isDeclarativeTarget(d)?(y.setAttribute("part","drag"),y.setAttribute("exportparts","control: drag-control, label: drag-label, correction, correction-correct, correction-incorrect"),this.placeChip(d,y)):d.tagName==="SLOT"?y.setAttribute("slot",d.getAttribute("name")||""):(d.tagName==="QTI-SIMPLE-ASSOCIABLE-CHOICE"&&y.setAttribute("slot","qti-simple-associable-choice"),d.appendChild(y)),$r(d,!0),this.syncDragDropState(),g&&this.enableFlipAnimations&&Ae(g,this.flipAnimationConfig),h&&this.enableFlipAnimations&&requestAnimationFrame(()=>{let I=y.getBoundingClientRect(),S=h.left-I.left,E=h.top-I.top;(S!==0||E!==0)&&y.animate([{transform:`translate(${S}px, ${E}px)`,opacity:.8},{transform:"translate(0, 0)",opacity:1}],{duration:this.flipAnimationConfig.duration||200,easing:this.flipAnimationConfig.easing||"ease",fill:"both"})});let v=c.getAttribute("identifier");v&&this.updateInventoryBasedOnMatchMax(v),this.cacheInteractiveElements(),this.checkAllMaxAssociations()}returnToInventory(c,d){let h=c.getAttribute("identifier");h&&(this.trackedDroppables.forEach(f=>{let m=this.chipsIn(f).filter(w=>w.getAttribute("identifier")===h);m.forEach(w=>this.removeChipFromDroppable(f,w)),m.length>0&&this.chipsIn(f).length===0&&$r(f,!1)}),this.restoreOriginalInInventory(h,d)),this.cacheInteractiveElements(),this.checkAllMaxAssociations()}restoreOriginalInInventory(c,d){let h=Lr(this.trackedDragContainers,c),f=new Set(h),m=[];this.trackedDragContainers.forEach(x=>{x.querySelectorAll('[qti-draggable="true"]').forEach(u=>!f.has(u)&&m.push(u))});let w=this.enableFlipAnimations&&m.length>0?Se(m):null;h.forEach(x=>{Hi(x),x.style.display="",x.style.visibility="visible"}),w&&this.enableFlipAnimations&&Ae(w,this.flipAnimationConfig),h.forEach(x=>this.animateReturn(x,d))}updateInventoryBasedOnMatchMax(c){let d=Lr(this.trackedDragContainers,c),h=Wd(this.trackedDraggables,c),f=this.trackedDroppables.reduce((m,w)=>this.isDeclarativeTarget(w)?m+this.chipsIn(w).filter(x=>x.getAttribute("identifier")===c).length:m+w.querySelectorAll(`[identifier="${c}"]`).length,0);d.forEach(m=>{Tt(m,"placeholder",h!==0&&f>=h)})}checkAllMaxAssociations(){let c=this.totalAssociationsFromState(),d=this.resolveDisableAfterMaxReached({defaultWhenUnset:!0}),h=this.maxAssociations>0&&c>=this.maxAssociations;this.trackedDroppables.forEach(f=>{let m=f.hasAttribute("data-drag-source");(this.droppableAtCapacityFromState(f)||d&&h)&&!m?f.setAttribute("disabled",""):f.removeAttribute("disabled")})}saveResponse(c){let d=this.getResponse,h=c??(typeof d=="function"?d.call(this):void 0),f=Array.isArray(h)?h:typeof h=="string"?[h]:(this.cacheInteractiveElements(),this.responseFromState());this._response=f,this._internals.setFormValue(JSON.stringify(this._response)),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:f}})),this.requestUpdate()}reset(c=!0){this.trackedDroppables.forEach(d=>{this.clearChips(d)}),this.trackedDraggables.forEach(d=>{let h=d.getAttribute("identifier");h&&this.restoreOriginalInInventory(h)}),this.resetDragState(),this.cacheInteractiveElements(),this._response=[],this._internals.setFormValue(JSON.stringify(this._response)),c&&this.saveResponse()}validate(){let c=this.totalAssociationsFromState(),d=this.maxAssociations>0&&c>=this.maxAssociations,h=this.maxAssociations>0&&c>this.maxAssociations,f=this.minAssociations>0&&c<this.minAssociations,m="",w=!0;h?(m=this.getFirstMessageAttribute(["data-max-associations-message","data-max-selections-message"])||this.dataset.maxAssociationsMessage||this.dataset.maxSelectionsMessage||`You've selected too many associations. Maximum allowed is ${this.maxAssociations}.`,w=!1):d&&this._dropBlockedDueToMax&&this.shouldTreatBlockedMaxAsInvalid()?(m=this.getFirstMessageAttribute(["data-max-associations-message","data-max-selections-message"])||this.dataset.maxAssociationsMessage||this.dataset.maxSelectionsMessage||`You've selected too many associations. Maximum allowed is ${this.maxAssociations}.`,w=!1):f?(m=this.getFirstMessageAttribute(["data-min-associations-message","data-min-selections-message"])||this.dataset.minAssociationsMessage||this.dataset.minSelectionsMessage||`Please select at least ${this.minAssociations} ${this.minAssociations===1?"association":"associations"}.`,w=!1,this._dropBlockedDueToMax=!1):this._dropBlockedDueToMax=!1;let x=this.trackedDroppables[0]??this.trackedDraggables[0]??this;return this.setInteractionValidity(w,m,x,{suppressInline:!0}),w}reportValidity(){return super.reportValidity()}}return Wi([p({type:Number,reflect:!0,attribute:"min-associations"})],a.prototype,"minAssociations",void 0),Wi([p({type:Number,reflect:!0,attribute:"max-associations"})],a.prototype,"maxAssociations",null),Wi([B({context:qe})],a.prototype,"_dragDrop",void 0),Wi([p({type:Boolean,attribute:"disable-animations"})],a.prototype,"disableAnimations",null),Wi([p({attribute:"response",reflect:!1,noAccessor:!0,converter:zt({emptyAs:[]})})],a.prototype,"response",null),a};var En=class{getInsertPosition(t,e,r,i,o){let s=t.indexOf(r);if(s===-1)return null;let a=r.getBoundingClientRect(),l=(o-a.top)/a.height,d=Math.min(1,Math.max(0,l))>.5;return{index:s,placeAfter:d}}};var Zd=new En;var Cu={borderStyle:"2px dashed",borderColor:"var(--qti-drop-highlight-border-color, #c1c1c1)",background:"transparent",transitionDuration:150};function Qi(){return{placeholder:null,lastHoverTarget:null,lastPlacement:null,sortContainer:null}}function Sn(n){n.placeholder?.remove(),n.placeholder=null,n.lastHoverTarget=null,n.lastPlacement=null,n.sortContainer=null}function An(n,t,e={}){let r={...Cu,...e},i=document.createElement("div");return i.setAttribute("data-drop-placeholder","true"),i.style.width=`${t.width}px`,i.style.height=`${t.height}px`,i.style.margin=window.getComputedStyle(n).margin,i.style.boxSizing="border-box",i.style.border=`${r.borderStyle} ${r.borderColor}`,i.style.borderRadius=getComputedStyle(n).borderRadius,i.style.background=r.background,i.style.transition=`transform ${r.transitionDuration*Cn(n)}ms ease`,i.style.pointerEvents="none",i}function ic(n,t){for(let e of t)if(e.contains(n)&&e!==n)return e;return null}var Ot=(n,t='[qti-draggable="true"]')=>{class e extends n{constructor(){super(...arguments),this.#t=null,this.#e=null,this.#r=Qi(),this.#i={hoveredSlot:null,originalPositions:new Map},this.#o=new Set,this.sortablePlaceholderConfig={},this.sortableAnimationConfig={duration:150,easing:"ease"}}#t;#e;#r;#i;#o;#n;set allowReorder(i){this.#n=i}get allowReorder(){return this.#n??this.resolveAllowReorder({defaultWhenUnset:!0})}get isDraggingFromSlot(){return this.#t!==null}findContainingDroppable(i){return ic(i,this.trackedDroppables)}#s(i){return i.querySelector(t)}#a(i){let o=this.#c(i);return o===0||o>1}#c(i){let o=parseInt(i.getAttribute("match-max")||"1",10);return Number.isNaN(o)?1:o}#h(i){return i.querySelectorAll(t).length}#l(i){let o=this.#c(i);return o===0?!1:this.#h(i)>=o}#u(){this.#i={hoveredSlot:null,originalPositions:new Map}}#d(i){if(!this.#t||i===this.#t){this.#p();return}if(this.#i.hoveredSlot===i)return;this.#p();let o=this.#s(i);if(!o){this.#r.placeholder&&i.appendChild(this.#r.placeholder),this.#i.hoveredSlot=i;return}if(this.#a(i)){if(this.#l(i)){this.#r.placeholder&&this.#t&&this.#t.appendChild(this.#r.placeholder),this.#i.hoveredSlot=null;return}this.#r.placeholder&&i.appendChild(this.#r.placeholder),this.#i.hoveredSlot=i;return}if(this.isDeclarativeTarget(i)){this.#r.placeholder?.parentElement&&this.#r.placeholder.remove(),this.#i.hoveredSlot=i;return}let a=Se([o]);this.#i.originalPositions.set(o,i),this.#r.placeholder&&this.#r.placeholder.parentElement&&this.#r.placeholder.remove(),this.#t.appendChild(o),this.#r.placeholder&&i.appendChild(this.#r.placeholder),this.#i.hoveredSlot=i,Ae(a,this.sortableAnimationConfig)}#p(){if(this.#i.originalPositions.size===0&&this.#i.hoveredSlot===null)return;let i=Array.from(this.#i.originalPositions.keys()),o=i.length>0?Se(i):null;for(let[s,a]of this.#i.originalPositions)a.appendChild(s);this.#r.placeholder&&this.#t&&this.#t.appendChild(this.#r.placeholder),o&&Ae(o,this.sortableAnimationConfig),this.#i.originalPositions.clear(),this.#i.hoveredSlot=null}initiateDrag(i,o,s,a,...l){this.#t=null,this.#r=Qi(),this.#u();let c=this.findContainingDroppable(i);if(this.#e=c,c&&this.allowReorder){this.#t=c,this.#r.sortContainer=c;let h=i.getBoundingClientRect();this.#r.placeholder=An(i,h,this.sortablePlaceholderConfig);let f=i.getAttribute("slot");f&&this.#r.placeholder.setAttribute("slot",f),this.#r.placeholder.style.visibility="hidden",c.appendChild(this.#r.placeholder),this.trackedDroppables.forEach(m=>{if(m!==c&&m.hasAttribute("disabled")){if(this.#a(m)&&this.#l(m))return;m.removeAttribute("disabled"),this.#o.add(m)}})}let[d]=l;super.initiateDrag(i,o,s,a,d)}cleanupSortableState(i=!0){if(i)for(let[o,s]of this.#i.originalPositions)s.appendChild(o);this.#r.placeholder&&this.#r.placeholder.remove(),Sn(this.#r),this.#o.clear(),this.#t=null,this.#u()}onSortableDragMove(i,o){if(!this.isDraggingFromSlot)return;let s=Nr(this.trackedDroppables,i,o,this.dragState.dragClone,this.collisionDetectionAlgorithm);s?this.#d(s):this.#p()}handleDragMove(i,o){Object.getPrototypeOf(e.prototype).handleDragMove?.call(this,i,o),this.onSortableDragMove(i,o)}allowDrop(i,o){return!this.allowReorder&&this.#e&&!this.trackedDragContainers.includes(this.#e)&&o!==this.#e&&this.trackedDroppables.includes(o)?!1:this.isDraggingFromSlot&&this.trackedDroppables.includes(o)?this.#a(o)?!this.#l(o):!0:this.isDraggingFromSlot&&this.trackedDragContainers.includes(o)?!0:super.allowDrop(i,o)}handleDrop(i,o){super.handleDrop(i,o),this.cleanupSortableState(!1)}handleInvalidDrop(i){this.cleanupSortableState(),super.handleInvalidDrop(i)}}return e};var th=[O,U,Vt,q`
6858
+ <slot part="label"></slot>`}};yo([p({type:String,attribute:"template-identifier"})],_t.prototype,"templateIdentifier",void 0);yo([p({type:String,attribute:"show-hide"})],_t.prototype,"showHide",void 0);yo([p({type:Boolean,converter:{fromAttribute:o=>o==="true",toAttribute:o=>String(o)}})],_t.prototype,"fixed",void 0);yo([p({type:String,attribute:!1})],_t.prototype,"marker",void 0);var Nd=[{tag:"qti-simple-choice",ctor:_t}];var $d=[...bd,...vd,...xd,...kd,...Sd,...Id,...Td,...Od,...Md,...Nd];var hu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i};function pu(o,t,e,r,n={}){let i=n.publishWidth??!0,s=n.hostWindow??(typeof window<"u"?window:null);if(!t.length||!e.length||!s)return;let a=0,l=0,c=r.length?r:[o],d=c.map(h=>({el:h,reservation:h.style.getPropertyValue("--qti-drag-min-width"),hadStyleAttribute:h.hasAttribute("style")}));c.forEach(h=>h.style.setProperty("--qti-drag-min-width","0px")),t.forEach(h=>{let f=h.getBoundingClientRect();a=Math.max(a,f.height),l=Math.max(l,f.width)}),d.forEach(({el:h,reservation:f,hadStyleAttribute:m})=>{f?h.style.setProperty("--qti-drag-min-width",f):h.style.removeProperty("--qti-drag-min-width"),!m&&h.getAttribute("style")===""&&h.removeAttribute("style")}),n.hasChanged?.({height:a,width:l})!==!1&&(o.style.setProperty("--qti-dropzone-min-height",`${a}px`),i&&(o.style.setProperty("--qti-dropzone-min-width",`${l}px`),o.style.setProperty("--qti-drag-min-width",`${l}px`)),r.forEach(h=>{h.style.minHeight=`var(--qti-drag-container-min-height, ${a}px)`,h.style.setProperty("--qti-dropzone-min-height",`${a}px`),i&&(h.style.setProperty("--qti-dropzone-min-width",`${l}px`),h.style.setProperty("--qti-drag-min-width",`${l}px`))}))}var Qa=(o,t,e,r='slot[part="drags"]')=>{class n extends o{constructor(){super(...arguments),this.autoSizeDropzones=!0,this.#t=null,this.#e=new Set,this.#r=null,this.#n=0,this.#i=null}get autoSizeDropzoneWidth(){return!0}#t;#e;#r;#n;#i;collectAutoSizeTargets(){let s=(a,l)=>Array.from(l?.querySelectorAll(a)??[]);return{draggables:[...s(t,this),...s(t,this.shadowRoot)],droppables:[...s(e,this),...s(e,this.shadowRoot)],dragContainers:[...s(r,this),...s(r,this.shadowRoot)]}}dropzonePropertyTarget(){return this}updateMinDimensionsForDropZones(){if(!this.autoSizeDropzones)return;let{draggables:s,droppables:a,dragContainers:l}=this.collectAutoSizeTargets();s.length!==0&&(pu(this.dropzonePropertyTarget(),s,a,l,{publishWidth:this.autoSizeDropzoneWidth,hasChanged:c=>{let d=this.#i;return d&&d.height===c.height&&d.width===c.width?!1:(this.#i=c,!0)}}),this.#a(s),this.#o())}#o(){typeof MutationObserver>"u"||this.#r||(this.#r=new MutationObserver(()=>this.#s()),this.#r.observe(this,{childList:!0,subtree:!0,characterData:!0}))}#s(){this.#n||(this.#n=requestAnimationFrame(()=>{this.#n=0,this.updateMinDimensionsForDropZones()}))}#a(s){if(typeof ResizeObserver>"u")return;this.#t??=new ResizeObserver(()=>this.#s());let a=new Set(s);for(let l of this.#e)a.has(l)||this.#t.unobserve(l);for(let l of a)this.#e.has(l)||this.#t.observe(l);this.#e=a}disconnectedCallback(){this.#t?.disconnect(),this.#t=null,this.#e.clear(),this.#r?.disconnect(),this.#r=null,this.#n&&cancelAnimationFrame(this.#n),this.#n=0,super.disconnectedCallback()}}return hu([p({type:Boolean,attribute:"auto-size-dropzones"})],n.prototype,"autoSizeDropzones",void 0),n};var{AbortController:Wt,AbortSignal:Ga,WeakMap:uu,WeakRef:mu,Window:Ld,reportError:vo=console.log}=globalThis,ke=o=>o&&o.defaultView!==null&&o.defaultView.document===o&&(o.defaultView.top===o.defaultView||ke(o.defaultView.parent.document)),ir=()=>!!Ld&&globalThis instanceof Ld,Xa=Symbol("unset"),[Vd,fu]=(()=>{function o(x,u,g=!0){Object.defineProperty(x,u,{...Object.getOwnPropertyDescriptor(x,u),enumerable:g})}let t="try"in Promise?Promise.try.bind(Promise):(x,...u)=>new Promise(g=>g(x(...u))),e="withResolvers"in Promise?Promise.withResolvers.bind(Promise):()=>{let x,u;return{promise:new Promise((y,v)=>(x=y,u=v)),resolve:x,reject:u}};function r(x,u){let g=u.call(x);if(g===null||typeof g!="object")throw new TypeError("Iterator is not an object");return g}let n=new uu,i={next(...x){let u=this,g=n.get(u);if(!g?.syncIteratorRecord)throw new TypeError("AsyncFromSyncIteratorPrototype.next called on invalid object");let{syncIteratorRecord:y}=g;return t(()=>y.next(...x))},return(...x){let u=this,g=n.get(u);if(!g?.syncIteratorRecord)throw new TypeError("AsyncFromSyncIteratorPrototype.return called on invalid object");let{syncIteratorRecord:y}=g;return t(()=>y.return?y.return(...x):{value:void 0,done:!0})},throw(...x){let u=this,g=n.get(u);if(!g?.syncIteratorRecord)throw new TypeError("AsyncFromSyncIteratorPrototype.throw called on invalid object");let{syncIteratorRecord:y}=g;return t(()=>{if(!y.throw)throw y.return(),new TypeError("no throw method");return y.throw(...x)})}};function s(x){let u=Object.create(i);return n.set(u,{syncIteratorRecord:x}),u}function a(x,u){let g;if(u){if(g=x[Symbol.asyncIterator],g==null){if(g=x[Symbol.iterator],g==null)throw new TypeError("Object is not async iterable");let y=r(x,g);return s(y)}}else g=x[Symbol.iterator];if(g==null)throw new TypeError("Object is not iterable");return r(x,g)}let l="any"in Ga?Ga.any.bind(Ga):x=>{let u=new Wt;for(let g of x)if(g.aborted)return u.abort(g.reason),u.signal;for(let g of x)g.addEventListener("abort",()=>{u.abort(g.reason)},{signal:u.signal});return u.signal},c=x=>l(x.filter(Boolean));class d{constructor({next:u,error:g,complete:y}={}){n.set(this,{next:u,error:g,complete:y})}next(u){let{next:g}=n.get(this)||{};g&&g(u)}error(u){let{error:g}=n.get(this)||{};g?g(u):vo(u)}complete(){let{complete:u}=n.get(this)||{};u&&u()}}function h(x,u){let g=n.get(x);if(g?.active){g.active=!1,g.subscriptionController.abort(u);for(let y of g.teardowns.reverse()){if(ir()&&!ke(document))return;try{y()}catch(v){vo(v)}}}}function f(x,u,g={}){if(ir()&&!ke(document))return;let y;typeof u=="function"?y=new d({next:u}):u&&!(u instanceof d)?y=new d(u):y=u||new d;let v=n.get(x),I=v.weakSubscriber?.deref();if(I?.active){let E=I,k=n.get(E);k.observers.add(y),g.signal&&(g.signal.aborted?k.observers.delete(y):g.signal.addEventListener("abort",()=>{let R=n.get(E);R?.active&&(R.observers.delete(y),R.observers.size==0&&h(E,g.signal.reason))}));return}let S=new m(y);if(v.weakSubscriber=new mu(S),"signal"in g&&(g.signal.aborted?h(S,g.signal.reason):g.signal.addEventListener("abort",()=>{let E=n.get(S);E?.active&&(E.observers.delete(y),E.observers.size==0&&h(S,g.signal.reason))})),v.subscribeCallback)try{v.subscribeCallback(S)}catch(E){S.error(E)}}class m{get[Symbol.toStringTag](){return"Subscriber"}constructor(u=null){if(!(u instanceof d))throw new TypeError("Illegal constructor");n.set(this,{active:!0,observers:new Set([u]),teardowns:[],subscriptionController:new Wt})}next(u){if(!(this instanceof m))throw new TypeError("illegal invocation");if(!arguments.length)throw new TypeError("too few arguments");let g=n.get(this);if(!g?.active||ir()&&!ke(document))return;let y=new Set(g.observers);for(let v of y)v.next(u)}error(u){if(!(this instanceof m))throw new TypeError("illegal invocation");if(!arguments.length)throw new TypeError("too few arguments");let g=n.get(this);if(!g?.active){vo(u);return}if(ir()&&!ke(document))return;h(this,u);let y=new Set(g.observers);for(let v of y)v.error(u)}complete(){if(!(this instanceof m))throw new TypeError("illegal invocation");let u=n.get(this);if(!u?.active||ir()&&!ke(document))return;h(this);let g=new Set(u.observers);for(let y of g)y.complete()}addTeardown(u){if(!(this instanceof m))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");if(ir()&&!ke(document))return;let g=n.get(this);g?.active?g.teardowns.push(u):u()}get active(){if(!(this instanceof m))throw new TypeError("illegal invocation");return!!n.get(this)?.active}get signal(){if(!(this instanceof m))throw new TypeError("illegal invocation");if(!n.has(this)){let u=new Wt;return u.abort(),u.signal}return n.get(this).subscriptionController.signal}}o(m.prototype,"next"),o(m.prototype,"error"),o(m.prototype,"complete"),o(m.prototype,"addTeardown"),o(m.prototype,"active"),o(m.prototype,"signal");class w{get[Symbol.toStringTag](){return"Observable"}constructor(u){if(!u)throw new TypeError("1 argument required but 0 present");n.set(this,{weakSubscriber:null,subscribeCallback:u})}static from(u){if(u===null||typeof u!="object")throw new TypeError("Observable.from only accepts objects");if(u instanceof w)return u;if(typeof(Symbol.asyncIterator in u&&u[Symbol.asyncIterator])=="function"){let I=function(S,E){if(S.signal.aborted)return;let k;try{let R=E.next();k=Promise.resolve(R)}catch(R){k=Promise.reject(R)}k.then(R=>{if(R===null||typeof R!="object"){S.error(new TypeError("Not an IteratorResult."));return}try{({done:v}=R)}catch(V){S.error(V);return}if(v){S.complete();return}let N;try{N=R.value}catch(V){S.error(V);return}S.next(N),I(S,E)},R=>{S.error(R)})},v=!1;return new w(S=>{if(S.signal.aborted)return;let E;try{E=a(u,!0)}catch(R){S.error(R);return}let k=E;S.signal.aborted||(S.signal.addEventListener("abort",()=>{if(typeof k.return!="function"||v)return;t(()=>k.return(S.signal.reason)).then(N=>{if(N===null||typeof N!="object")throw new TypeError("Iterator .return() must return an Object")})}),I(S,k))})}if(typeof(Symbol.iterator in u&&u[Symbol.iterator])=="function")return new w(v=>{if(v.signal.aborted)return;let I;try{I=a(u,!1)}catch(k){v.error(k);return}let S=!1,E=I;if(!v.signal.aborted)for(v.signal.addEventListener("abort",()=>{if(typeof E.return!="function"||S)return;let k=E.return();if(k===null||typeof k!="object")throw new TypeError("Iterator .return() must return an Object")});;)try{let k=E.next();if({done:S}=k,S){v.complete();return}if(v.next(k.value),v.signal.aborted)break}catch(k){v.error(k);break}});if(u instanceof Promise||typeof u.then=="function")return new w(v=>{u.then(I=>{v.next(I),v.complete()},I=>{v.error(I)})});throw new TypeError("Could not convert value to Observable")}subscribe(u=null,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");f(this,u,g)}takeUntil(u){if(!(this instanceof w))throw new TypeError("illegal invocation");let g=this,y=w.from(u);return new w(v=>{let I=new d({next(){v.complete()},error(){v.complete()}}),S={signal:v.signal};if(f(y,I,S),!v.active)return;let E=new d({next(k){v.next(k)},error(k){v.error(k)},complete(){v.complete()}});f(g,E,S)})}map(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{let v=0,I=new d({next(E){let k;try{k=u(E,v)}catch(R){y.error(R);return}v+=1,y.next(k)},error(E){y.error(E)},complete(){y.complete()}}),S={signal:y.signal};f(g,I,S)})}inspect(u={}){let g=null,y=null,v=null,I=null,S=null;typeof u=="function"?y=u:u&&typeof u=="object"&&("subscribe"in u&&(g=u.subscribe),"next"in u&&(y=u.next),"error"in u&&(v=u.error),"complete"in u&&(I=u.complete),"abort"in u&&(S=u.abort));let E=this;return new w(k=>{if(g!==null)try{g()}catch(L){k.error(L);return}let R=()=>{try{S!==null&&S(k.signal.reason)}catch(L){vo(L)}};k.signal.addEventListener("abort",R,{once:!0});let N=new d({next(L){if(y!==null)try{y(L)}catch(lt){k.signal.removeEventListener("abort",R),k.error(lt);return}k.next(L)},error(L){if(k.signal.removeEventListener("abort",R),v!==null)try{v(L)}catch(lt){k.error(lt);return}k.error(L)},complete(){if(k.signal.removeEventListener("abort",R),I!==null)try{I()}catch(L){k.error(L);return}k.complete()}}),V={signal:k.signal};f(E,N,V)})}filter(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{let v=0,I=new d({next(E){let k=!1;try{k=u(E,v)}catch(R){y.error(R);return}v+=1,k&&y.next(E)},error(E){y.error(E)},complete(){y.complete()}}),S={signal:y.signal};f(g,I,S)})}take(u){if(!(this instanceof w))throw new TypeError("illegal invocation");let g=this;return new w(y=>{let v=u;if(v==0)return y.complete();let I=new d({next(E){y.next(E),v-=1,v==0&&y.complete()},error(E){y.error(E)},complete(){y.complete()}}),S={signal:y.signal};f(g,I,S)})}drop(u){if(!(this instanceof w))throw new TypeError("illegal invocation");let g=this;return new w(y=>{let v=u,I=new d({next(E){if(v>0)return v-=1;v==0&&y.next(E)},error(E){y.error(E)},complete(){y.complete()}}),S={signal:y.signal};f(g,I,S)})}flatMap(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{let v=0,I=!1,S=[];function E(V){let L;try{L=u(V,v)}catch(Gt){return y.error(Gt)}v+=1;let lt;try{lt=w.from(L)}catch(Gt){return y.error(Gt)}let Ks=new d({next(Gt){y.next(Gt)},error(Gt){y.error(Gt)},complete(){if(S.length){let Gt=S.shift();E(Gt)}else k=!1,I&&y.complete()}}),Mt={signal:y.signal};f(lt,Ks,Mt)}let k=!1,R=new d({next(V){k?S.push(V):(k=!0,E(V))},error(V){y.error(V)},complete(){I=!0,!k&&!S.length&&y.complete()}}),N={signal:y.signal};f(g,R,N)})}switchMap(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{let v=0,I=!1,S=null;function E(N){let V;try{V=u(N,v)}catch(Mt){return y.error(Mt)}v+=1;let L;try{L=w.from(V)}catch(Mt){return y.error(Mt)}let lt=new d({next(Mt){y.next(Mt)},error(Mt){y.error(Mt)},complete(Mt){I?y.complete():S=null}}),Ks={signal:c([S.signal,y.signal])};f(L,lt,Ks)}let k=new d({next(N){S&&S.abort(),S=new Wt,E(N)},error(N){y.error(N)},complete(){I=!0,S||y.complete()}}),R={signal:y.signal};f(g,k,R)})}catch(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(v=>{let I=new d({next(E){v.next(E)},error(E){let k;try{k=u(E)}catch(L){v.error(L);return}let R;try{R=w.from(k)}catch(L){v.error(L);return}let N=new d({next(L){v.next(L)},error(L){v.error(L)},complete(){v.complete()}}),V={signal:v.signal};f(R,N,V)},complete(){v.complete()}}),S={signal:v.signal};f(g,I,S)})}finally(u){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let g=this;return new w(y=>{y.addTeardown(u);let v=new d({next(S){y.next(S)},error(S){y.error(S)},complete(){y.complete()}}),I={signal:y.signal};f(g,v,I)})}toArray(u={}){if(!(this instanceof w))throw new TypeError("illegal invocation");let{promise:g,resolve:y,reject:v}=e();if(u.signal){if(u.signal.aborted)return Promise.reject(u.signal.reason);u.signal.addEventListener("abort",()=>{v(u.signal.reason)})}let I=[],S=new d({next(E){I.push(E)},error(E){v(E)},complete(){y(I)}});return f(this,S,u),g}forEach(u,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:y,resolve:v,reject:I}=e(),S=new Wt,E={signal:c([S.signal,g.signal])};if(E.signal.aborted)return I(E.signal.reason),y;E.signal.addEventListener("abort",()=>{I(E.signal.reason)});let k=0,R=new d({next(N){try{u(N,k)}catch(V){I(V),S.abort(V)}k+=1},error(N){I(N)},complete(){v()}});return f(this,R,E),y}every(u,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:y,resolve:v,reject:I}=e(),S=new Wt,E={signal:c([S.signal,g.signal])};if(E.signal.aborted)return I(E.signal.reason),y;E.signal.addEventListener("abort",()=>{I(E.signal.reason)});let k=0,R=new d({next(N){let V=!1;try{V=u(N,k)}catch(L){I(L),S.abort(L)}k+=1,V||(v(!1),S.abort())},error(N){I(N)},complete(){v(!0)}});return f(this,R,E),y}first(u={}){if(!(this instanceof w))throw new TypeError("illegal invocation");let{promise:g,resolve:y,reject:v}=e(),I=new Wt,S={signal:c([I.signal,u.signal])};if(S.signal.aborted)return v(S.signal.reason),g;S.signal.addEventListener("abort",()=>{v(S.signal.reason)});let E=new d({next(k){y(k),I.abort()},error(k){v(k)},complete(){v(new RangeError("No values in Observable"))}});return f(this,E,S),g}last(u={}){if(!(this instanceof w))throw new TypeError("illegal invocation");let{promise:g,resolve:y,reject:v}=e();if(u.signal){if(u.signal.aborted)return v(u.signal.reason),g;u.signal.addEventListener("abort",()=>{v(u.signal.reason)})}let I=null,S=!1,E=new d({next(k){S=!0,I=k},error(k){v(k)},complete(){S?y(I):v(new RangeError("No values in Observable"))}});return f(this,E,u),g}find(u,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:y,resolve:v,reject:I}=e(),S=new Wt,E={signal:c([S.signal,g.signal])};if(E.signal.aborted)return I(E.signal.reason),y;E.signal.addEventListener("abort",()=>{I(E.signal.reason)});let k=0,R=new d({next(N){let V=!1;try{V=u(N,k)}catch(L){I(L),S.abort(L)}k+=1,V&&(v(N),S.abort())},error(N){I(N)},complete(){v()}});return f(this,R,E),y}some(u,g={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:y,resolve:v,reject:I}=e(),S=new Wt,E={signal:c([S.signal,g.signal])};if(E.signal.aborted)return I(E.signal.reason),y;E.signal.addEventListener("abort",()=>{I(E.signal.reason)});let k=0,R=new d({next(N){let V=!1;try{V=u(N,k)}catch(L){I(L),S.abort(L)}k+=1,V&&(v(!0),S.abort())},error(N){I(N)},complete(){v(!1)}});return f(this,R,E),y}reduce(u,g,y={}){if(!(this instanceof w))throw new TypeError("illegal invocation");if(typeof u!="function")throw new TypeError("Parameter 1 is not of type 'Function'");let{promise:v,resolve:I,reject:S}=e(),E=new Wt,k={signal:c([E.signal,y.signal])};if(k.signal.aborted)return S(k.signal.reason),v;k.signal.addEventListener("abort",()=>{S(k.signal.reason)},{once:!0});let R=0,N=arguments.length>1?g:Xa,V=new d({next(L){if(N===Xa){N=L,R++;return}try{let lt=u(N,L,R);R++,N=lt}catch(lt){S(lt),E.abort(lt);return}},error(L){S(L)},complete(){N!==Xa?I(N):S(new TypeError("no initial value provided and no values emitted"))}});return f(this,V,k),v}}return o(w.prototype,"subscribe"),[w,m]})();function zd(){return typeof globalThis.Observable=="function"}function jd(){Object.defineProperties(globalThis,{Observable:{value:Vd,configurable:!0,writable:!0},Subscriber:{value:fu,configurable:!0,writable:!0}}),EventTarget.prototype.when=function(o,t={}){if(ir()&&!ke(document))return;let e=this;return new Vd(r=>{if(!e||r.signal.aborted)return;let n=i=>{r.next(i)};e.addEventListener(o,n,{capture:t.capture||!1,passive:t.passive,once:!1,signal:r.signal})})}}function Ya(o,t,e){let r=o.filter(n=>!n.hasAttribute("disabled"));for(let n of r){let i=n.getBoundingClientRect();if(t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom)return n}return null}function Fd(o,t,e,r){if(!r)return null;let n=o.filter(s=>!s.hasAttribute("disabled")),i=r.getBoundingClientRect();for(let s of n){let a=s.getBoundingClientRect();if(!(i.right<a.left||i.left>a.right||i.bottom<a.top||i.top>a.bottom))return s}return null}function Bd(o,t,e,r){let n=o.filter(c=>!c.hasAttribute("disabled"));if(n.length===0)return null;let i,s;if(r){let c=r.getBoundingClientRect();i=c.left+c.width/2,s=c.top+c.height/2}else i=t,s=e;let a=null,l=1/0;for(let c of n){let d=c.getBoundingClientRect(),h=d.left+d.width/2,f=d.top+d.height/2,m=Math.sqrt(Math.pow(i-h,2)+Math.pow(s-f,2));m<l&&(l=m,a=c)}return a}function Ud(o,t,e,r){let n=o.filter(l=>!l.hasAttribute("disabled"));if(n.length===0)return null;let i;if(r){let l=r.getBoundingClientRect();i=[{x:l.left,y:l.top},{x:l.right,y:l.top},{x:l.left,y:l.bottom},{x:l.right,y:l.bottom}]}else i=[{x:t,y:e},{x:t,y:e},{x:t,y:e},{x:t,y:e}];let s=null,a=1/0;for(let l of n){let c=l.getBoundingClientRect(),d=[{x:c.left,y:c.top},{x:c.right,y:c.top},{x:c.left,y:c.bottom},{x:c.right,y:c.bottom}],h=0,f=0;for(let w of i)for(let x of d){let u=Math.sqrt(Math.pow(w.x-x.x,2)+Math.pow(w.y-x.y,2));h+=u,f++}let m=h/f;m<a&&(a=m,s=l)}return s}function gu(o,t,e){let r=o.getBoundingClientRect();return t>=r.left&&t<=r.right&&e>=r.top&&e<=r.bottom}function bu(o,t,e,r,n){let i=n&&n.length>0?o.filter(g=>n.includes(g)):o.filter(g=>g.tagName==="SLOT"&&g.hasAttribute("part")&&g.getAttribute("part")?.includes("drags")),a=o.filter(g=>!i.includes(g));if(i.length===0&&a.length===0)return null;let l;if(r){let g=r.getBoundingClientRect();l=[{x:g.left,y:g.top},{x:g.right,y:g.top},{x:g.left,y:g.bottom},{x:g.right,y:g.bottom}]}else l=[{x:t,y:e},{x:t,y:e},{x:t,y:e},{x:t,y:e}];let c=g=>{let y=g.getBoundingClientRect(),v=[{x:y.left,y:y.top},{x:y.right,y:y.top},{x:y.left,y:y.bottom},{x:y.right,y:y.bottom}],I=0,S=0;for(let E of l)for(let k of v){let R=Math.sqrt(Math.pow(E.x-k.x,2)+Math.pow(E.y-k.y,2));I+=R,S++}return I/S},d=null,h=1/0;for(let g of i){let y=c(g);y<h&&(h=y,d=g)}let f=null,m=1/0;for(let g of a){let y=c(g);y<m&&(m=y,f=g)}if(d&&r){let g=r.getBoundingClientRect(),y=d.getBoundingClientRect(),v=g.left+g.width/2,I=g.top+g.height/2;if(v>=y.left&&v<=y.right&&I>=y.top&&I<=y.bottom)return d}if(f&&gu(f,t,e))return f;let x=r?.getAttribute("data-drag-origin")==="droppable"?.85:1.5;return d&&f?h<=m*x?d:f:d||f}function Hd(o){switch(o){case"pointerWithin":return Ya;case"rectangleIntersection":return Fd;case"closestCenter":return Bd;case"closestCorners":return Ud;case"closestCornersWithInventoryPriority":return bu;default:return Ya}}function Nr(o,t,e,r,n="pointerWithin",i){return Hd(n)(o,t,e,r,i)}function Ee(o,t){let e=o.composedPath?o.composedPath():[o.target];for(let r of e)if(r instanceof HTMLElement&&r.tagName!=="SLOT"){if(r.matches(t)||r.hasAttribute("qti-draggable"))return r;let n=r.closest(t)||r.closest('[qti-draggable="true"]');if(n)return n}return null}function Hn(o){return o?o.hasAttribute("disabled")?!0:o.internals?.states?.has("disabled")??!1:!1}var Ka=o=>o?.internals;function Tt(o,t,e){let r=Ka(o)?.states;r&&(e?r.add(t):r.delete(t))}function wo(o,t){return Ka(o)?.states?.has(t)??!1}function Wn(o){Tt(o,"dragging",!1),Tt(o,"placeholder",!1),Tt(o,"return-anchor",!1)}function or(o){return wo(o,"dragging")||wo(o,"placeholder")}function oe(o,t,e){if(!o)return;e?o.setAttribute(t,""):o.removeAttribute(t);let r=Ka(o)?.states;if(r){e?r.add(t):r.delete(t);return}let n=new Set((o.getAttribute("part")??"").split(/\s+/).filter(Boolean));n.has("drop")&&(e?n.add(t):n.delete(t),o.setAttribute("part",[...n].join(" ")))}function $r(o,t){oe(o,"filled",t)}function Lr(o,t){let e=[];return o.forEach(r=>{let n=[];r.tagName.toLowerCase()==="slot"?n=r.assignedElements({flatten:!0}).filter(a=>a.getAttribute("identifier")===t):n=Array.from(r.querySelectorAll(`[identifier="${t}"]`)),e.push(...n)}),e}function Wd(o,t){let e=o.find(n=>n.getAttribute("identifier")===t);if(!e)return 1;let r=e.getAttribute("match-max");return r?parseInt(r,10)||0:1}var Ja={origin:{x:0,y:0},scale:{x:1,y:1}},xo=100,yu=o=>{let t=o.fullscreenElement??o.webkitFullscreenElement??null;for(;t instanceof HTMLElement;){let e=t.shadowRoot?.fullscreenElement??null;if(!e||e===t)break;t=e}return t instanceof HTMLElement?t:null},vu=o=>{let t=o.shadowRoot;return t?t.querySelector("slot:not([name])")?o:t:o},wu=(o,t)=>{let e=t;for(;e;){if(e===o)return!0;e=e.parentNode??e.host??null}return!1},Za=(o,t)=>{let e=o.ownerDocument??document,r=t??e.body,n=yu(e);return n&&!wu(n,r)?vu(n):r},tc=o=>{let e=(o.ownerDocument??document).createElement("div");e.style.cssText=`position:fixed;left:0;top:0;width:${xo}px;height:${xo}px;margin:0;padding:0;border:0;visibility:hidden;pointer-events:none;`,o.appendChild(e);let r=e.getBoundingClientRect();return e.remove(),{origin:{x:r.left,y:r.top},scale:{x:r.width/xo||1,y:r.height/xo||1}}},Qd=(o,t,e)=>({x:(t-o.origin.x)/o.scale.x,y:(e-o.origin.y)/o.scale.y});zd()||jd();var Gd=new WeakSet;function xu(o){!o||Gd.has(o)||(o.addEventListener("touchmove",()=>{},{capture:!1,passive:!1}),Gd.add(o))}var Xd=o=>!!o.internals?.states,qo=(o,t,e,r='slot[part="drags"]',n="pointerWithin")=>{class i extends o{constructor(){super(...arguments),this.trackedDraggables=[],this.trackedDroppables=[],this.trackedDragContainers=[],this.allDropzones=[],this.collisionDetectionAlgorithm=n,this.dragState={dragging:!1,dragSource:null,dragClone:null,startOffset:{x:0,y:0},currentTarget:null,sourceDroppable:null,inputType:null,returnAnchorItems:[]},this.cloneFrame=Ja,this.subscriptions=[],this.dragSubscriptions=[],this.lastPointerDownAt=0,this.lastTouchStartAt=0,this.#t=new Set,this.#e=new Set,this.#r=a=>{let l=a;if(l.context!==yr)return;let c=l.contextTarget;c instanceof HTMLElement&&this.#e.add(c)}}#t;isDragDropEnabled(){return!0}publishDraggablesSelector(){let a=this.isDragDropEnabled()?t:null;this._interactionContext.draggablesSelector!==a&&(this._interactionContext={...this._interactionContext,draggablesSelector:a})}connectedCallback(){super.connectedCallback(),this.addEventListener("context-request",this.#r,{capture:!0}),xu(this.ownerDocument?.defaultView),this.publishDraggablesSelector(),this.setupDragDrop()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("context-request",this.#r,{capture:!0}),this.#e.clear(),this.cleanup()}async setupDragDrop(){await this.updateComplete,this.cacheInteractiveElements(),this.afterCache(),this.setupDragObservables()}afterCache(){}removeChipFromDroppable(a,l){l.remove()}#e;#r;registeredMatching(a){for(let l of this.#e)l.isConnected||this.#e.delete(l);return[...this.#e].filter(l=>l.matches(a))}cacheInteractiveElements(){let a=(k,R)=>Array.from(R?.querySelectorAll(k)??[]),l=a(t,this),c=a(t,this.shadowRoot),d=a('[qti-draggable="true"]:not([data-drag-clone])',this),h=a('[qti-draggable="true"]:not([data-drag-clone])',this.shadowRoot),f=this.registeredMatching(t);this.trackedDraggables=Array.from(new Set([...l,...c,...d,...h,...f]));let m=a(e,this),w=a(e,this.shadowRoot);this.trackedDroppables=Array.from(new Set([...m,...w]));let x=a(r,this),u=a(r,this.shadowRoot);this.trackedDragContainers=Array.from(new Set([...x,...u])),this.allDropzones=[...this.trackedDroppables,...this.trackedDragContainers];let g=this.isDragDropEnabled(),y=new Set(this.trackedDraggables),v=new Set(this.trackedDroppables),I=g?y:new Set,S=g?v:new Set,E=new Set([...y,...v].filter(Xd));for(let k of this.#t)E.has(k)||(k.internals.states.delete("drag"),k.internals.states.delete("droppable"));for(let k of E){let R=I.has(k),N=!R&&S.has(k);R?k.internals.states.add("drag"):k.internals.states.delete("drag"),N?k.internals.states.add("droppable"):k.internals.states.delete("droppable")}this.#t=E,this.trackedDraggables.forEach(k=>{let R=or(k);g&&!R?(k.style.cursor="grab",k.style.userSelect="none",k.style.touchAction="none",k.style.webkitUserSelect="none",k.style.webkitTouchCallout="none",k.setAttribute("qti-draggable","true"),k.setAttribute("tabindex","0")):(k.style.cursor="",k.style.userSelect="",k.style.touchAction="",k.style.webkitUserSelect="",k.style.webkitTouchCallout="",k.removeAttribute("qti-draggable"),k.getAttribute("tabindex")==="0"&&k.removeAttribute("tabindex"))})}setupDragObservables(){let a=this.shadowRoot;if(!a){console.error("\u274C [Observable DnD] No shadow root found!");return}let l=a.when("pointerdown").filter(m=>{if(!m.isTrusted)return!1;let w=Ee(m,t),x=this.disabled||this.readonly,u=Hn(w)||or(w),g=Date.now()-this.lastTouchStartAt<50;return w&&m.isPrimary!==!1&&m.button===0&&!x&&!u&&!g}).subscribe(m=>{this.lastPointerDownAt=Date.now();let w=Ee(m,t);if(!w){console.warn("\u26A0\uFE0F [Observable DnD] No draggable target found");return}m.pointerType==="touch"&&(m.preventDefault(),m.stopPropagation());let x=m.isTrusted?m.pointerType==="touch"?100:10:0;if(this.dragState.activationTimeout&&clearTimeout(this.dragState.activationTimeout),x===0){this.dragState.dragging||this.initiateDrag(w,m.clientX,m.clientY,m.pointerType,"pointer",m.pointerId,m.isTrusted);return}let u=()=>{this.dragState.activationTimeout&&(clearTimeout(this.dragState.activationTimeout),this.dragState.activationTimeout=void 0),document.removeEventListener("pointerup",u,!0),document.removeEventListener("pointercancel",u,!0)};document.addEventListener("pointerup",u,{once:!0,capture:!0}),document.addEventListener("pointercancel",u,{once:!0,capture:!0}),this.dragState.activationTimeout=window.setTimeout(()=>{this.dragState.activationTimeout=void 0,document.removeEventListener("pointerup",u,!0),document.removeEventListener("pointercancel",u,!0),this.dragState.dragging||this.initiateDrag(w,m.clientX,m.clientY,m.pointerType,"pointer",m.pointerId,m.isTrusted)},x)}),c=a.when("mousedown").filter(m=>{let w=Ee(m,t),x=this.disabled||this.readonly,u=Hn(w)||or(w),g=m.button===0,y=Date.now()-this.lastPointerDownAt<50;return w&&g&&!x&&!u&&!y}).subscribe(m=>{let w=Ee(m,t);!w||this.dragState.dragging||(m.preventDefault(),this.initiateDrag(w,m.clientX,m.clientY,"mouse","mouse",void 0,m.isTrusted))}),d=a.when("touchstart").filter(m=>{let w=Ee(m,t),x=this.disabled||this.readonly,u=Hn(w)||or(w),g=!!(m.touches?.[0]||m.changedTouches?.[0]),y=Date.now()-this.lastPointerDownAt<50;return w&&g&&!x&&!u&&!y}).subscribe(m=>{let w=Ee(m,t),x=m.touches?.[0]||m.changedTouches?.[0];!w||!x||this.dragState.dragging||(this.lastTouchStartAt=Date.now(),m.preventDefault(),m.stopPropagation(),this.initiateDrag(w,x.clientX,x.clientY,"touch","touch",void 0,m.isTrusted))}),h={dragging:!1,dragElement:null,dragIndex:0,dropIndex:0,dropElement:null},f=a.when("keydown").subscribe(m=>{let w=this.trackedDraggables.filter(u=>!or(u)),x=[...this.trackedDroppables,...this.trackedDragContainers];if(h.dragging)switch(m.code){case"ArrowRight":case"ArrowDown":{m.preventDefault();let u=(h.dropIndex+1)%x.length;h={...h,dropIndex:u,dropElement:x[u]};break}case"ArrowLeft":case"ArrowUp":{m.preventDefault();let u=(h.dropIndex-1+x.length)%x.length;h={...h,dropIndex:u,dropElement:x[u]};break}case"Space":case"Enter":case"Tab":{m.preventDefault(),h.dragElement&&h.dropElement&&(this.allowDrop(h.dragElement,h.dropElement)||this.trackedDragContainers.includes(h.dropElement)?this.handleDrop(h.dragElement,h.dropElement):this.handleInvalidDrop(h.dragElement)),this.trackedDraggables.forEach(u=>u.removeAttribute("data-keyboard-dragging")),this.saveResponse(),h={dragging:!1,dragElement:null,dragIndex:0,dropIndex:0,dropElement:null};break}case"Escape":{m.preventDefault(),this.trackedDraggables.forEach(u=>u.removeAttribute("data-keyboard-dragging")),h={dragging:!1,dragElement:null,dragIndex:0,dropIndex:0,dropElement:null};break}}else{let u=Ee(m,t),g=this.disabled||this.readonly,y=Hn(u)||or(u);u&&["Space","Enter"].includes(m.code)&&!g&&!y&&(m.preventDefault(),u.setAttribute("data-keyboard-dragging","true"),h={dragging:!0,dragElement:u,dragIndex:w.indexOf(u),dropIndex:0,dropElement:x[0]})}this.allDropzones.forEach(u=>u.removeAttribute("hover")),h.dragging&&h.dropElement&&(h.dropElement.setAttribute("hover",""),h.dropElement.hasAttribute("tabindex")&&h.dropElement.getAttribute("tabindex")!=="-1"&&h.dropElement.focus())});this.subscriptions.push(l,c,d,f)}initiateDrag(a,l,c,d,h="pointer",f,m){if(this.dragState.dragging){console.warn("\u26A0\uFE0F [Observable DnD] Already dragging, ignoring initiateDrag");return}if(a.hasAttribute("data-drag-clone")){console.warn("\u26A0\uFE0F [Observable DnD] Attempted to drag visual clone, ignoring");return}let w=y=>y.contains(a)||!!y.shadowRoot?.contains(a),x=this.trackedDroppables.some(w),u=this.trackedDroppables.find(w)||null;a.getAnimations().forEach(y=>y.cancel());let g=a.getBoundingClientRect();if(this.dragState={dragging:!0,dragSource:a,dragClone:this.createDragClone(a,g),startOffset:{x:l-g.left,y:c-g.top},currentTarget:null,sourceDroppable:u,inputType:d,pointerId:f,startedFromTrustedEvent:m,initialCoordinates:{x:l,y:c},returnAnchorItems:[]},x){this.dragState.dragClone?.setAttribute("data-drag-origin","droppable"),this.removeChipFromDroppable(u,a),this.cacheInteractiveElements(),u&&u.setAttribute("data-drag-source","true");let y=a.getAttribute("identifier");if(y){let v=Lr(this.trackedDragContainers,y);v.forEach(I=>Tt(I,"return-anchor",!0)),this.dragState.returnAnchorItems=v}}else this.dragState.dragClone?.setAttribute("data-drag-origin","inventory"),Tt(a,"dragging",!0);this.updateClonePosition(l,c),this.activateAllDroppables(),this.watchDragCloneHost(),this.setupMoveObservables(d,h)}setupMoveObservables(a,l="pointer"){if(a==="touch"){if(l==="pointer")try{let v=this.dragState.dragSource,I=this.dragState.pointerId;v&&I!==void 0&&v.setPointerCapture&&v.setPointerCapture(I)}catch{}let g=v=>{v.cancelable&&(v.preventDefault(),l==="pointer"&&v.stopPropagation())};document.addEventListener("touchmove",g,{passive:!1,capture:!0}),document.addEventListener("touchstart",g,{passive:!1,capture:!0}),document.addEventListener("touchend",g,{passive:!1,capture:!0}),document.addEventListener("gesturestart",g,{passive:!1}),document.addEventListener("gesturechange",g,{passive:!1}),document.addEventListener("gestureend",g,{passive:!1});let y=()=>{if(document.removeEventListener("touchmove",g,{capture:!0}),document.removeEventListener("touchstart",g,{capture:!0}),document.removeEventListener("touchend",g,{capture:!0}),document.removeEventListener("gesturestart",g),document.removeEventListener("gesturechange",g),document.removeEventListener("gestureend",g),l==="pointer")try{let v=this.dragState.dragSource,I=this.dragState.pointerId;v&&I!==void 0&&v.releasePointerCapture&&v.releasePointerCapture(I)}catch{}};this.dragState.touchCleanup=y}let c=l==="mouse"?"mousemove":l==="touch"?"touchmove":"pointermove",d=l==="mouse"?"mouseup":l==="touch"?"touchend":"pointerup",h=g=>{let y=this.dragState.startedFromTrustedEvent;return y===void 0||g.isTrusted===y},f=document.when(c).takeUntil(document.when(d)).subscribe({next:g=>{if(h(g)){if(g.preventDefault(),g.stopPropagation(),l==="touch"){let y=g.touches?.[0]||g.changedTouches?.[0];if(!y)return;this.handleDragMove(y.clientX,y.clientY);return}if(l==="mouse"){let y=g;if(typeof y.buttons=="number"&&(y.buttons&1)!==1)return}this.handleDragMove(g.clientX,g.clientY)}}}),m=document.when(d).subscribe({next:g=>{h(g)&&(g.preventDefault(),g.stopPropagation(),this.handleDragEnd())}}),w=l==="touch"?document.when("touchcancel").subscribe({next:g=>{h(g)&&this.handleDragEnd()}}):l==="mouse"?null:document.when("pointercancel").subscribe({next:g=>{h(g)&&this.handleDragEnd()}}),x=document.when("keydown").filter(g=>g.key==="Escape").subscribe({next:g=>{h(g)&&this.handleDragEnd()}}),u=[f,m,x];w&&u.push(w),this.dragSubscriptions.push(...u)}handleDragMove(a,l){if(!this.dragState.dragging||!this.dragState.dragClone)return;this.updateClonePosition(a,l);let c=Nr(this.allDropzones,a,l,this.dragState.dragClone,this.collisionDetectionAlgorithm,this.trackedDragContainers),d=Date.now(),h=d-(this.dragState.lastTargetChangeTime||0);c!==this.dragState.currentTarget&&(c===null||h>=50)&&(this.allDropzones.forEach(m=>oe(m,"hover",!1)),c&&oe(c,"hover",!0),this.dragState.currentTarget=c,this.dragState.lastTargetChangeTime=d)}handleDragEnd(){if(!this.dragState.dragging)return;let{dragSource:a,dragClone:l,currentTarget:c,sourceDroppable:d}=this.dragState,h=c;if(l){let w=l.getBoundingClientRect();h=Nr(this.allDropzones,w.left+w.width/2,w.top+w.height/2,l,this.collisionDetectionAlgorithm,this.trackedDragContainers)??c}!!a&&!!h&&this.allowDrop(a,h)&&a&&h?(this.handleDrop(a,h),Tt(a,"dragging",!1)):this.handleInvalidDrop(a),l&&l.remove(),(this.dragState.returnAnchorItems||[]).forEach(w=>{Tt(w,"return-anchor",!1)}),this.dragState.touchCleanup&&this.dragState.touchCleanup(),this.resetDragState(),this.deactivateAllDroppables(),this.saveResponse(),d&&d.removeAttribute("data-drag-source"),this.cacheInteractiveElements();let m=this.checkAllMaxAssociations;typeof m=="function"&&m.call(this)}allowDrop(a,l){return this.trackedDroppables.includes(l)||this.trackedDragContainers.includes(l)}handleInvalidDrop(a){Wn(a)}createDragClone(a,l){let c=a.cloneNode(!0),d=window.getComputedStyle(a);for(let f=0;f<d.length;f++){let m=d[f];c.style.setProperty(m,d.getPropertyValue(m))}let h=Za(a.isConnected?a:this,this.dragCloneRoot());return this.cloneFrame=tc(h),c.style.position="fixed",c.style.width=`${l.width/this.cloneFrame.scale.x}px`,c.style.height=`${l.height/this.cloneFrame.scale.y}px`,c.style.zIndex="9999",c.style.pointerEvents="none",c.style.touchAction="none",c.style.userSelect="none",c.style.opacity="0.8",c.removeAttribute("qti-draggable"),c.removeAttribute("tabindex"),c.setAttribute("data-drag-clone","true"),c.setAttribute("data-drag-interaction",this.tagName.toLowerCase()),h.appendChild(c),c}dragCloneRoot(){let a=this.getRootNode();return a instanceof ShadowRoot?a:null}updateClonePosition(a,l){if(this.dragState.lastCoordinates={x:a,y:l},!this.dragState.dragClone)return;let{startOffset:c}=this.dragState,{x:d,y:h}=Qd(this.cloneFrame,a-c.x,l-c.y);this.dragState.dragClone.style.left=`${d}px`,this.dragState.dragClone.style.top=`${h}px`}watchDragCloneHost(){let a=this.ownerDocument??document,l=()=>{let{dragClone:c,dragSource:d,lastCoordinates:h}=this.dragState;if(!c)return;let f=d?.isConnected?d:this,m=Za(f,this.dragCloneRoot());m!==c.parentNode&&(m.appendChild(c),this.cloneFrame=tc(m),h&&this.updateClonePosition(h.x,h.y))};a.addEventListener("fullscreenchange",l),a.addEventListener("webkitfullscreenchange",l),this.dragSubscriptions.push({unsubscribe:()=>{a.removeEventListener("fullscreenchange",l),a.removeEventListener("webkitfullscreenchange",l)}})}activateAllDroppables(){this.setInternalsState("dragzone-enabled",!0),this.setInternalsState("dragzone-active",!0),this.allDropzones.forEach(a=>{oe(a,"enabled",!0),oe(a,"active",!0)})}deactivateAllDroppables(){this.setInternalsState("dragzone-enabled",!1),this.setInternalsState("dragzone-active",!1),this.allDropzones.forEach(a=>{oe(a,"enabled",!1),oe(a,"active",!1),oe(a,"hover",!1)})}resetDragState(){if(this.dragState.activationTimeout&&clearTimeout(this.dragState.activationTimeout),(this.dragState.returnAnchorItems||[]).forEach(a=>{Tt(a,"return-anchor",!1)}),this.dragState.touchCleanup)try{this.dragState.touchCleanup()}catch(a){console.warn("\u26A0\uFE0F [Observable DnD] Error during touch cleanup:",a)}this.dragSubscriptions.forEach(a=>{try{a&&typeof a.unsubscribe=="function"&&a.unsubscribe()}catch(l){console.warn("\u26A0\uFE0F [Observable DnD] Error unsubscribing:",l)}}),this.dragSubscriptions=[],this.cloneFrame=Ja,this.dragState={dragging:!1,dragSource:null,dragClone:null,startOffset:{x:0,y:0},currentTarget:null,sourceDroppable:null,inputType:null,pointerId:void 0,startedFromTrustedEvent:void 0,touchCleanup:void 0,returnAnchorItems:[]}}setInternalsState(a,l){let c=this._internals;c?.states&&(l?c.states.add(a):c.states.delete(a))}cleanup(){this.subscriptions.forEach(a=>{try{a.unsubscribe()}catch{}}),this.subscriptions=[],this.dragState.dragClone&&this.dragState.dragClone.remove();for(let a of this.#t)Xd(a)&&(a.internals.states.delete("drag"),a.internals.states.delete("droppable"));this.#t.clear(),this.resetDragState()}}return i};var Yd={duration:250,easing:"ease",fill:"both"};function ec(o){let t=o.getBoundingClientRect();return{left:t.left,top:t.top,width:t.width,height:t.height}}function Kd(o){return{left:o.left,top:o.top,width:o.width,height:o.height}}function Se(o){let t=new Map;return o.forEach(e=>{t.set(e,ec(e))}),t}function Jd(o,t){return{deltaX:o.left-t.left,deltaY:o.top-t.top,deltaW:o.width/t.width,deltaH:o.height/t.height}}function Co(o){if(typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;if(!o)return 1;let t=getComputedStyle(o).getPropertyValue("--qti-motion").trim();if(t==="")return 1;let e=Number.parseFloat(t);return Number.isFinite(e)&&e>0?e:0}function rc(o){return Co(o)>0}function ko(o,t,e={}){let r=Co(o);if(r<=0)return null;let n=ec(o),{deltaX:i,deltaY:s,deltaW:a,deltaH:l}=Jd(t,n);if(i===0&&s===0&&a===1&&l===1)return null;let{duration:c,easing:d,fill:h}={...Yd,...e};return o.animate([{transformOrigin:"top left",transform:`translate(${i}px, ${s}px) scale(${a}, ${l})`},{transformOrigin:"top left",transform:"none"}],{duration:c*r,easing:d,fill:h})}function Ae(o,t={}){let e=new Map;return o.forEach((r,n)=>{if(!(n instanceof HTMLElement))return;let i=ko(n,r,t);i&&e.set(n,i)}),e}var Qn=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Rt=(o,t,e,r='slot[part="drags"]',n="closestCornersWithInventoryPriority")=>{let i=Qa(o,t,e,r),s=qo(i,t,e,r,n);class a extends s{constructor(){super(...arguments),this.minAssociations=1,this._maxAssociations=0,this._maxAssociationsDefaultApplied=!1,this._response=[],this._dragDrop={dragsByTarget:{},countByTarget:{},nodesByTarget:{}},this.#t=new WeakMap,this._dropBlockedDueToMax=!1,this.flipAnimationConfig={duration:200,easing:"ease"},this._enableFlipAnimations=!0,this._pendingResponse=void 0}get maxAssociations(){if(!this._maxAssociationsDefaultApplied){this._maxAssociationsDefaultApplied=!0;let c=this.tagName?.toLowerCase()||"";(c==="qti-graphic-gap-match-interaction"||c==="qti-gap-match-interaction")&&!this.hasAttribute("max-associations")&&this._maxAssociations===0&&(this._maxAssociations=1)}return this._maxAssociations}set maxAssociations(c){let d=this._maxAssociations;this._maxAssociations=c,this.requestUpdate("maxAssociations",d)}#t;isSwapTarget(c){let d=this.dragState.sourceDroppable,h=parseInt(c.getAttribute("match-max")||"1",10);return(Number.isNaN(h)?1:h)===1&&this.isDeclarativeTarget(c)&&!!d&&d!==c&&this.trackedDroppables.includes(d)}isDeclarativeTarget(c){return c?c.acceptsDeclarativeDrops===!0?!0:c.hasAttribute("data-declarative-drops"):!1}chipsIn(c){return this.isDeclarativeTarget(c)?[...this.#t.get(c)??[]]:Array.from(c.querySelectorAll(t))}droppableHolding(c){return this.trackedDroppables.find(d=>this.chipsIn(d).includes(c)||d.contains(c)||!!d.shadowRoot?.contains(c))??null}placeChip(c,d){this.#t.set(c,[...this.#t.get(c)??[],d])}removeChipFromDroppable(c,d){let h=c??this.droppableHolding(d);if(h&&this.isDeclarativeTarget(h)){let f=(this.#t.get(h)??[]).filter(m=>m!==d);this.#t.set(h,f),f.length===0&&$r(h,!1),this.syncDragDropState();return}d.remove()}clearChips(c){this.isDeclarativeTarget(c)?(this.#t.set(c,[]),this.syncDragDropState()):this.chipsIn(c).forEach(d=>d.remove()),$r(c,!1)}syncDragDropState(){let c={},d={},h={};for(let f of this.trackedDroppables){let m=f.getAttribute("identifier");if(!m)continue;let w=this.chipsIn(f),x=this.isDeclarativeTarget(f)?w:Array.from(f.querySelectorAll('[qti-draggable="true"]'));c[m]=w.map(u=>u.getAttribute("identifier")).filter(u=>!!u),d[m]=Math.max(w.length,x.length),h[m]=w}this._dragDrop={dragsByTarget:c,countByTarget:d,nodesByTarget:h},this.requestUpdate()}responseFromState(){this.syncDragDropState();let{dragsByTarget:c}=this._dragDrop;return this.trackedDroppables.flatMap(d=>{let h=d.getAttribute("identifier");return h?(c[h]??[]).map(f=>`${f} ${h}`):[]})}totalAssociationsFromState(){return this.syncDragDropState(),Object.values(this._dragDrop.countByTarget).reduce((c,d)=>c+d,0)}droppableAtCapacityFromState(c){let d=parseInt(c.getAttribute("match-max")||"1",10),h=Number.isNaN(d)?1:d;if(h===0)return!1;let f=c.getAttribute("identifier");return(f?this._dragDrop.countByTarget[f]??0:0)>=h}set disableAnimations(c){this._enableFlipAnimations=!c}get disableAnimations(){return!this._enableFlipAnimations}get enableFlipAnimations(){return this._enableFlipAnimations&&rc(this)}collectAutoSizeTargets(){return{draggables:this.trackedDraggables,droppables:this.trackedDroppables,dragContainers:this.trackedDragContainers}}get response(){let c=this.getResponse,d=typeof c=="function"?c.call(this):void 0;return(Array.isArray(d)?d:(this.cacheInteractiveElements(),this.responseFromState())).join(",")}set response(c){if(Array.isArray(c)){if(!this.trackedDroppables||this.trackedDroppables.length===0){this._pendingResponse=c,this._internals.setFormValue(JSON.stringify(c));return}let d=this.getValue,h=typeof d=="function"?d.call(this,c):c,f=Array.isArray(h)?h:typeof h=="string"&&h.length>0?[h]:[];this.reset(!1),f.forEach(x=>this.placeResponse(x));let m=this.getResponse,w=typeof m=="function"?m.call(this):void 0;this._response=Array.isArray(w)?w:(this.cacheInteractiveElements(),this.responseFromState())}else this._response=typeof c=="string"&&c.length>0?[c]:[];this._internals.setFormValue(JSON.stringify(this._response))}afterCache(){if(this.updateMinDimensionsForDropZones(),this.applyConfiguredChoicesContainerWidth(),this._pendingResponse!==void 0){let c=this._pendingResponse;this._pendingResponse=void 0,this.response=c}}get autoSizeDropzoneWidth(){return!this.dataset.choicesContainerWidth}applyConfiguredChoicesContainerWidth(){let c=this.dataset.choicesContainerWidth;c&&this.trackedDroppables.forEach(d=>{d.style.width=`${c}px`,d.style.boxSizing="border-box"})}shouldTreatBlockedMaxAsInvalid(){return!0}shouldReturnToInventoryOnInventoryDrop(){return!1}getFirstMessageAttribute(c){for(let h of c){let f=this.getAttribute(h);if(f&&f.trim().length>0)return f}let d=c.map(h=>h.toLowerCase());for(let h of Array.from(this.attributes))if(d.includes(h.name.toLowerCase())&&h.value.trim().length>0)return h.value;return null}allowDrop(c,d){if(this.trackedDragContainers.includes(d))return!0;let h=this.trackedDroppables.includes(d),f=d.hasAttribute("disabled"),m=d.hasAttribute("data-drag-source");return f&&this.isSwapTarget(d)?!0:h&&(!f||m)}handleDrop(c,d){let h=this.dragState.dragClone?.getBoundingClientRect();this.dropDraggableInDroppable(c,d,h);let f=c.getAttribute("identifier");f&&this.updateInventoryBasedOnMatchMax(f),this.validate(),this.reportValidity()}handleInvalidDrop(c){let d=this.dragState.sourceDroppable,h=this.dragState.currentTarget,f=!h,m=this.trackedDragContainers[0]||null;if(!c)return;if(d&&f&&m)this.dropDraggableInDroppable(c,m);else if(d&&this.trackedDroppables.includes(d))this.dropDraggableInDroppable(c,d,this.dragState.dragClone?.getBoundingClientRect());else if(wo(c,"dragging")){this.restoreInventoryItem(c,this.dragState.dragClone?.getBoundingClientRect());let g=c.getAttribute("identifier");g&&this.updateInventoryBasedOnMatchMax(g),this.cacheInteractiveElements(),this.checkAllMaxAssociations()}let w=this.totalAssociationsFromState(),x=this.maxAssociations>0&&w>=this.maxAssociations,u=!!h&&h.hasAttribute("disabled")&&!h.hasAttribute("data-drag-source");this._dropBlockedDueToMax=u&&x,this.validate(),this.reportValidity()}animateReturn(c,d){!c||!d||!this.enableFlipAnimations||requestAnimationFrame(()=>{ko(c,Kd(d),this.flipAnimationConfig)})}restoreInventoryItem(c,d){Wn(c),c.style.display="",c.style.position="",this.animateReturn(c,d)}placeResponse(c){let[d,...h]=c.split(" ").reverse(),f=this.trackedDroppables.find(m=>m.getAttribute("identifier")===d);f&&h.forEach(m=>{if(!m)return;let x=Lr(this.trackedDragContainers,m).at(0)||this.trackedDraggables.find(u=>u.getAttribute("identifier")===m);x&&this.dropDraggableInDroppable(x,f)})}dropDraggableInDroppable(c,d,h){if(this.trackedDragContainers.includes(d)){if(!this.dragState.sourceDroppable){if(this.shouldReturnToInventoryOnInventoryDrop()){this.returnToInventory(c,h),this._dropBlockedDueToMax=!1,this.validate();return}this.restoreInventoryItem(c,h),this.cacheInteractiveElements(),this.checkAllMaxAssociations(),this._dropBlockedDueToMax=!1,this.validate();return}let I=c.getAttribute("identifier");this.removeChipFromDroppable(this.droppableHolding(c),c),I&&this.restoreOriginalInInventory(I,h),this.cacheInteractiveElements(),this.checkAllMaxAssociations(),this._dropBlockedDueToMax=!1,this.validate();return}let m=parseInt(d.getAttribute("match-max")||"1",10),w=Number.isNaN(m)?1:m,x=w===0||w>1,u=Array.from(d.querySelectorAll('[qti-draggable="true"]')),g=this.enableFlipAnimations&&u.length>0?Se(u):null;if(!x){let I=this.chipsIn(d)[0]??(this.isDeclarativeTarget(d)?null:d.querySelector('[qti-draggable="true"]'));if(I){let S=I.getAttribute("identifier"),E=I.getBoundingClientRect();this.removeChipFromDroppable(d,I);let k=this.dragState.sourceDroppable,R=this.isDeclarativeTarget(d)&&k&&k!==d&&this.isDeclarativeTarget(k)?k:null;R?(this.placeChip(R,I),$r(R,!0),this.animateReturn(I,E)):S&&this.restoreOriginalInInventory(S,E)}}let y=c.cloneNode(!0);y.removeAttribute("style"),y.removeAttribute("data-keyboard-dragging"),y.setAttribute("qti-draggable","true"),y.setAttribute("tabindex","0"),this.isDeclarativeTarget(d)?(y.setAttribute("part","drag"),y.setAttribute("exportparts","control: drag-control, label: drag-label, correction, correction-correct, correction-incorrect"),this.placeChip(d,y)):d.tagName==="SLOT"?y.setAttribute("slot",d.getAttribute("name")||""):(d.tagName==="QTI-SIMPLE-ASSOCIABLE-CHOICE"&&y.setAttribute("slot","qti-simple-associable-choice"),d.appendChild(y)),$r(d,!0),this.syncDragDropState(),g&&this.enableFlipAnimations&&Ae(g,this.flipAnimationConfig),h&&this.enableFlipAnimations&&requestAnimationFrame(()=>{let I=y.getBoundingClientRect(),S=h.left-I.left,E=h.top-I.top;(S!==0||E!==0)&&y.animate([{transform:`translate(${S}px, ${E}px)`,opacity:.8},{transform:"translate(0, 0)",opacity:1}],{duration:this.flipAnimationConfig.duration||200,easing:this.flipAnimationConfig.easing||"ease",fill:"both"})});let v=c.getAttribute("identifier");v&&this.updateInventoryBasedOnMatchMax(v),this.cacheInteractiveElements(),this.checkAllMaxAssociations()}returnToInventory(c,d){let h=c.getAttribute("identifier");h&&(this.trackedDroppables.forEach(f=>{let m=this.chipsIn(f).filter(w=>w.getAttribute("identifier")===h);m.forEach(w=>this.removeChipFromDroppable(f,w)),m.length>0&&this.chipsIn(f).length===0&&$r(f,!1)}),this.restoreOriginalInInventory(h,d)),this.cacheInteractiveElements(),this.checkAllMaxAssociations()}restoreOriginalInInventory(c,d){let h=Lr(this.trackedDragContainers,c),f=new Set(h),m=[];this.trackedDragContainers.forEach(x=>{x.querySelectorAll('[qti-draggable="true"]').forEach(u=>!f.has(u)&&m.push(u))});let w=this.enableFlipAnimations&&m.length>0?Se(m):null;h.forEach(x=>{Wn(x),x.style.display="",x.style.visibility="visible"}),w&&this.enableFlipAnimations&&Ae(w,this.flipAnimationConfig),h.forEach(x=>this.animateReturn(x,d))}updateInventoryBasedOnMatchMax(c){let d=Lr(this.trackedDragContainers,c),h=Wd(this.trackedDraggables,c),f=this.trackedDroppables.reduce((m,w)=>this.isDeclarativeTarget(w)?m+this.chipsIn(w).filter(x=>x.getAttribute("identifier")===c).length:m+w.querySelectorAll(`[identifier="${c}"]`).length,0);d.forEach(m=>{Tt(m,"placeholder",h!==0&&f>=h)})}checkAllMaxAssociations(){let c=this.totalAssociationsFromState(),d=this.resolveDisableAfterMaxReached({defaultWhenUnset:!0}),h=this.maxAssociations>0&&c>=this.maxAssociations;this.trackedDroppables.forEach(f=>{let m=f.hasAttribute("data-drag-source");(this.droppableAtCapacityFromState(f)||d&&h)&&!m?f.setAttribute("disabled",""):f.removeAttribute("disabled")})}saveResponse(c){let d=this.getResponse,h=c??(typeof d=="function"?d.call(this):void 0),f=Array.isArray(h)?h:typeof h=="string"?[h]:(this.cacheInteractiveElements(),this.responseFromState());this._response=f,this._internals.setFormValue(JSON.stringify(this._response)),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:f}})),this.requestUpdate()}reset(c=!0){this.trackedDroppables.forEach(d=>{this.clearChips(d)}),this.trackedDraggables.forEach(d=>{let h=d.getAttribute("identifier");h&&this.restoreOriginalInInventory(h)}),this.resetDragState(),this.cacheInteractiveElements(),this._response=[],this._internals.setFormValue(JSON.stringify(this._response)),c&&this.saveResponse()}validate(){let c=this.totalAssociationsFromState(),d=this.maxAssociations>0&&c>=this.maxAssociations,h=this.maxAssociations>0&&c>this.maxAssociations,f=this.minAssociations>0&&c<this.minAssociations,m="",w=!0;h?(m=this.getFirstMessageAttribute(["data-max-associations-message","data-max-selections-message"])||this.dataset.maxAssociationsMessage||this.dataset.maxSelectionsMessage||`You've selected too many associations. Maximum allowed is ${this.maxAssociations}.`,w=!1):d&&this._dropBlockedDueToMax&&this.shouldTreatBlockedMaxAsInvalid()?(m=this.getFirstMessageAttribute(["data-max-associations-message","data-max-selections-message"])||this.dataset.maxAssociationsMessage||this.dataset.maxSelectionsMessage||`You've selected too many associations. Maximum allowed is ${this.maxAssociations}.`,w=!1):f?(m=this.getFirstMessageAttribute(["data-min-associations-message","data-min-selections-message"])||this.dataset.minAssociationsMessage||this.dataset.minSelectionsMessage||`Please select at least ${this.minAssociations} ${this.minAssociations===1?"association":"associations"}.`,w=!1,this._dropBlockedDueToMax=!1):this._dropBlockedDueToMax=!1;let x=this.trackedDroppables[0]??this.trackedDraggables[0]??this;return this.setInteractionValidity(w,m,x,{suppressInline:!0}),w}reportValidity(){return super.reportValidity()}}return Qn([p({type:Number,reflect:!0,attribute:"min-associations"})],a.prototype,"minAssociations",void 0),Qn([p({type:Number,reflect:!0,attribute:"max-associations"})],a.prototype,"maxAssociations",null),Qn([B({context:qe})],a.prototype,"_dragDrop",void 0),Qn([p({type:Boolean,attribute:"disable-animations"})],a.prototype,"disableAnimations",null),Qn([p({attribute:"response",reflect:!1,noAccessor:!0,converter:zt({emptyAs:[]})})],a.prototype,"response",null),a};var Eo=class{getInsertPosition(t,e,r,n,i){let s=t.indexOf(r);if(s===-1)return null;let a=r.getBoundingClientRect(),l=(i-a.top)/a.height,d=Math.min(1,Math.max(0,l))>.5;return{index:s,placeAfter:d}}};var Zd=new Eo;var qu={borderStyle:"2px dashed",borderColor:"var(--qti-drop-highlight-border-color, #c1c1c1)",background:"transparent",transitionDuration:150};function Gn(){return{placeholder:null,lastHoverTarget:null,lastPlacement:null,sortContainer:null}}function So(o){o.placeholder?.remove(),o.placeholder=null,o.lastHoverTarget=null,o.lastPlacement=null,o.sortContainer=null}function Ao(o,t,e={}){let r={...qu,...e},n=document.createElement("div");return n.setAttribute("data-drop-placeholder","true"),n.style.width=`${t.width}px`,n.style.height=`${t.height}px`,n.style.margin=window.getComputedStyle(o).margin,n.style.boxSizing="border-box",n.style.border=`${r.borderStyle} ${r.borderColor}`,n.style.borderRadius=getComputedStyle(o).borderRadius,n.style.background=r.background,n.style.transition=`transform ${r.transitionDuration*Co(o)}ms ease`,n.style.pointerEvents="none",n}function nc(o,t){for(let e of t)if(e.contains(o)&&e!==o)return e;return null}var Ot=(o,t='[qti-draggable="true"]')=>{class e extends o{constructor(){super(...arguments),this.#t=null,this.#e=null,this.#r=Gn(),this.#n={hoveredSlot:null,originalPositions:new Map},this.#i=new Set,this.sortablePlaceholderConfig={},this.sortableAnimationConfig={duration:150,easing:"ease"}}#t;#e;#r;#n;#i;#o;set allowReorder(n){this.#o=n}get allowReorder(){return this.#o??this.resolveAllowReorder({defaultWhenUnset:!0})}get isDraggingFromSlot(){return this.#t!==null}findContainingDroppable(n){return nc(n,this.trackedDroppables)}#s(n){return n.querySelector(t)}#a(n){let i=this.#c(n);return i===0||i>1}#c(n){let i=parseInt(n.getAttribute("match-max")||"1",10);return Number.isNaN(i)?1:i}#h(n){return n.querySelectorAll(t).length}#l(n){let i=this.#c(n);return i===0?!1:this.#h(n)>=i}#u(){this.#n={hoveredSlot:null,originalPositions:new Map}}#d(n){if(!this.#t||n===this.#t){this.#p();return}if(this.#n.hoveredSlot===n)return;this.#p();let i=this.#s(n);if(!i){this.#r.placeholder&&n.appendChild(this.#r.placeholder),this.#n.hoveredSlot=n;return}if(this.#a(n)){if(this.#l(n)){this.#r.placeholder&&this.#t&&this.#t.appendChild(this.#r.placeholder),this.#n.hoveredSlot=null;return}this.#r.placeholder&&n.appendChild(this.#r.placeholder),this.#n.hoveredSlot=n;return}if(this.isDeclarativeTarget(n)){this.#r.placeholder?.parentElement&&this.#r.placeholder.remove(),this.#n.hoveredSlot=n;return}let a=Se([i]);this.#n.originalPositions.set(i,n),this.#r.placeholder&&this.#r.placeholder.parentElement&&this.#r.placeholder.remove(),this.#t.appendChild(i),this.#r.placeholder&&n.appendChild(this.#r.placeholder),this.#n.hoveredSlot=n,Ae(a,this.sortableAnimationConfig)}#p(){if(this.#n.originalPositions.size===0&&this.#n.hoveredSlot===null)return;let n=Array.from(this.#n.originalPositions.keys()),i=n.length>0?Se(n):null;for(let[s,a]of this.#n.originalPositions)a.appendChild(s);this.#r.placeholder&&this.#t&&this.#t.appendChild(this.#r.placeholder),i&&Ae(i,this.sortableAnimationConfig),this.#n.originalPositions.clear(),this.#n.hoveredSlot=null}initiateDrag(n,i,s,a,...l){this.#t=null,this.#r=Gn(),this.#u();let c=this.findContainingDroppable(n);if(this.#e=c,c&&this.allowReorder){this.#t=c,this.#r.sortContainer=c;let h=n.getBoundingClientRect();this.#r.placeholder=Ao(n,h,this.sortablePlaceholderConfig);let f=n.getAttribute("slot");f&&this.#r.placeholder.setAttribute("slot",f),this.#r.placeholder.style.visibility="hidden",c.appendChild(this.#r.placeholder),this.trackedDroppables.forEach(m=>{if(m!==c&&m.hasAttribute("disabled")){if(this.#a(m)&&this.#l(m))return;m.removeAttribute("disabled"),this.#i.add(m)}})}let[d]=l;super.initiateDrag(n,i,s,a,d)}cleanupSortableState(n=!0){if(n)for(let[i,s]of this.#n.originalPositions)s.appendChild(i);this.#r.placeholder&&this.#r.placeholder.remove(),So(this.#r),this.#i.clear(),this.#t=null,this.#u()}onSortableDragMove(n,i){if(!this.isDraggingFromSlot)return;let s=Nr(this.trackedDroppables,n,i,this.dragState.dragClone,this.collisionDetectionAlgorithm);s?this.#d(s):this.#p()}handleDragMove(n,i){Object.getPrototypeOf(e.prototype).handleDragMove?.call(this,n,i),this.onSortableDragMove(n,i)}allowDrop(n,i){return!this.allowReorder&&this.#e&&!this.trackedDragContainers.includes(this.#e)&&i!==this.#e&&this.trackedDroppables.includes(i)?!1:this.isDraggingFromSlot&&this.trackedDroppables.includes(i)?this.#a(i)?!this.#l(i):!0:this.isDraggingFromSlot&&this.trackedDragContainers.includes(i)?!0:super.allowDrop(n,i)}handleDrop(n,i){super.handleDrop(n,i),this.cleanupSortableState(!1)}handleInvalidDrop(n){this.cleanupSortableState(),super.handleInvalidDrop(n)}}return e};var th=[O,U,Vt,q`
6859
6859
  :host {
6860
6860
  display: block; /* necessary to calculate scaling position */
6861
6861
  }
@@ -6908,9 +6908,9 @@ div.full-correct-response-inline {
6908
6908
  :host([answer-key]) ::slotted(qti-simple-associable-choice) {
6909
6909
  display: none;
6910
6910
  }
6911
- `];var _u=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Tu=Rt(D,"qti-simple-associable-choice","[part~='drop']","slot[name='qti-simple-associable-choice']","pointerWithin"),sr=class extends Ot(Tu,'[qti-draggable="true"]'){static{this.styles=th}constructor(){super(),this._childrenMap=[],this._registerChoiceHandler=this._registerChoice.bind(this),this.addEventListener("register-qti-simple-associable-choice",this._registerChoiceHandler)}_registerChoice(t){let e=t.composedPath()[0];if(this.shadowRoot?.contains(e))return;let r=e;this._childrenMap.includes(r)||(this._childrenMap=[...this._childrenMap,r])}#t(t,e){let r=this._dragDrop?.nodesByTarget?.[t]??[];return b`<div name=${e} part="drop" data-declarative-drops identifier=${t}>
6912
- ${H(r,i=>i.getAttribute("identifier"),i=>i)}
6913
- </div>`}get#e(){return this.maxAssociations>0?this.maxAssociations:Math.ceil(this._childrenMap.length/2)}getResponse(){let t=[];for(let e=0;e<this.#e;e++){let r=this.shadowRoot?.querySelector(`[part~='drop'][identifier="droplist${e}_left"]`),i=this.shadowRoot?.querySelector(`[part~='drop'][identifier="droplist${e}_right"]`),o=r&&this.chipsIn(r)[0]?.getAttribute("identifier"),s=i&&this.chipsIn(i)[0]?.getAttribute("identifier");o&&s&&t.push(`${o} ${s}`)}return t}totalAssociationsFromState(){return this.syncDragDropState(),this.getResponse().length}getValue(t){return t?.flatMap((e,r)=>{let i=e.split(" ");return i.length!==2?[]:[`${i[0]} droplist${r}_left`,`${i[1]} droplist${r}_right`]})??[]}render(){return b` <slot name="prompt"></slot>
6911
+ `];var Iu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},_u=Rt(D,"qti-simple-associable-choice","[part~='drop']","slot[name='qti-simple-associable-choice']","pointerWithin"),sr=class extends Ot(_u,'[qti-draggable="true"]'){static{this.styles=th}constructor(){super(),this._childrenMap=[],this._registerChoiceHandler=this._registerChoice.bind(this),this.addEventListener("register-qti-simple-associable-choice",this._registerChoiceHandler)}_registerChoice(t){let e=t.composedPath()[0];if(this.shadowRoot?.contains(e))return;let r=e;this._childrenMap.includes(r)||(this._childrenMap=[...this._childrenMap,r])}#t(t,e){let r=this._dragDrop?.nodesByTarget?.[t]??[];return b`<div name=${e} part="drop" data-declarative-drops identifier=${t}>
6912
+ ${H(r,n=>n.getAttribute("identifier"),n=>n)}
6913
+ </div>`}get#e(){return this.maxAssociations>0?this.maxAssociations:Math.ceil(this._childrenMap.length/2)}getResponse(){let t=[];for(let e=0;e<this.#e;e++){let r=this.shadowRoot?.querySelector(`[part~='drop'][identifier="droplist${e}_left"]`),n=this.shadowRoot?.querySelector(`[part~='drop'][identifier="droplist${e}_right"]`),i=r&&this.chipsIn(r)[0]?.getAttribute("identifier"),s=n&&this.chipsIn(n)[0]?.getAttribute("identifier");i&&s&&t.push(`${i} ${s}`)}return t}totalAssociationsFromState(){return this.syncDragDropState(),this.getResponse().length}getValue(t){return t?.flatMap((e,r)=>{let n=e.split(" ");return n.length!==2?[]:[`${n[0]} droplist${r}_left`,`${n[1]} droplist${r}_right`]})??[]}render(){return b` <slot name="prompt"></slot>
6914
6914
  <slot part="drags" name="qti-simple-associable-choice"></slot>
6915
6915
  <div part="drops">
6916
6916
  ${this._childrenMap.length>0&&Array.from({length:this.#e},(t,e)=>b`<div part="drop-row">
@@ -6919,7 +6919,7 @@ div.full-correct-response-inline {
6919
6919
  </div>`)}
6920
6920
 
6921
6921
  <div role="alert" part="message" id="validation-message"></div>
6922
- </div>`}updated(t){super.updated(t),t.has("_childrenMap")&&this.cacheInteractiveElements()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("register-qti-simple-associable-choice",this._registerChoiceHandler)}};_u([_()],sr.prototype,"_childrenMap",void 0);var In=[{tag:"qti-associate-interaction",ctor:sr}];var Ie=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},_e=(n,t)=>{class e extends n{constructor(){super(...arguments),this._choiceElements=[],this.#t=null,this.minChoices=0,this.maxChoices=1,this._handleDisabledChange=(i,o)=>{this._choiceElements.forEach(s=>s.disabled=o)},this._handleReadonlyChange=(i,o)=>{this._choiceElements.forEach(s=>s.readonly=o)},this.response="",this._handleValueChange=()=>{this._internals.setFormValue(this.value),this._updateChoiceSelection()}}#t;_handleMaxChoicesChange(i,o){this._determineInputType()}get value(){return Array.isArray(this.response)&&this.response.length===0||this.response===""?null:Array.isArray(this.response)?this.response.join(","):this.response}set value(i){this.maxChoices>1&&(typeof i=="string"||i===null)?this.response=i?i.toString().split(","):[]:this.response=i||""}firstUpdated(){super.firstUpdated(),this._updateChoiceSelection()}connectedCallback(){super.connectedCallback(),this.addEventListener(`activate-${t}`,this._choiceElementSelectedHandler),this.#t=new MutationObserver(()=>this._syncChoicesFromDOM()),this.#t.observe(this,{childList:!0,subtree:!0}),this._syncChoicesFromDOM()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(`activate-${t}`,this._choiceElementSelectedHandler),this.#t&&(this.#t.disconnect(),this.#t=null)}_syncChoicesFromDOM(){let i=new Set(this._choiceElements);this._choiceElements=Array.from(this.querySelectorAll(t)),this._choiceElements.forEach(s=>{i.has(s)||(this.disabled&&(s.disabled=!0),s.readonly=this.readonly,s.internals&&!s.internals.ariaChecked&&(s.internals.ariaChecked="false"))}),this._determineInputType();let o=new Set(this._choiceElements.map(s=>s.identifier));if(Array.isArray(this.response)){let s=this.response.filter(a=>o.has(a));s.length!==this.response.length&&(this.response=s)}else this.response&&!o.has(this.response)&&(this.response="");this._updateChoiceSelection()}validate(){let o=this._choiceElements.filter(c=>this._getChoiceChecked(c)).length,s=!0,a="";this.maxChoices!==0&&o>this.maxChoices?(s=!1,a=this.dataset.maxSelectionsMessage||`Please select no more than ${this.maxChoices} ${this.maxChoices===1?"option":"options"}.`):o<this.minChoices&&(s=!1,a=this.dataset.minSelectionsMessage||`Please select at least ${this.minChoices} ${this.minChoices===1?"option":"options"}.`);let l=this._choiceElements.find(c=>this.contains(c))||this;return this.setInteractionValidity(s,a,l,{suppressInline:!0}),s}reportValidity(){return super.reportValidity()}_determineInputType(){this._internals.role=this.maxChoices===1?"radiogroup":null;let i=this.maxChoices===1?"radio":"checkbox";this._interactionContext.choiceRole!==i&&(this._interactionContext={...this._interactionContext,choiceRole:i})}_choiceElementSelectedHandler(i){this._toggleChoiceChecked(i.target);let o=this.resolveDisableAfterMaxReached({defaultWhenUnset:!1});this.maxChoices===1?this._choiceElements.forEach(s=>{s.identifier!==i.detail.identifier&&this._setChoiceChecked(s,!1)}):this.maxChoices!==0&&o&&(this._choiceElements.filter(a=>this._getChoiceChecked(a)).length>=this.maxChoices?this._choiceElements.forEach(a=>{this._getChoiceChecked(a)||(a.disabled=!0)}):this._choiceElements.forEach(a=>a.disabled=!1)),this._handleChoiceSelection()}_setChoiceChecked(i,o){i.internals?.states&&(o?(i.internals.states.add("checked"),i.internals.ariaChecked="true"):(i.internals.states.delete("checked"),i.internals.ariaChecked="false"))}_getChoiceChecked(i){return i.internals.states.has("checked")}_toggleChoiceChecked(i){let o=this._getChoiceChecked(i);this._setChoiceChecked(i,!o)}_handleChoiceSelection(){let o=this._choiceElements.filter(s=>this._getChoiceChecked(s)).map(s=>s.identifier);this.response=this.maxChoices===1?o[0]||"":o,this.validate(),this.reportValidity(),this.saveResponse(this.response)}_updateChoiceSelection(){let i=Array.isArray(this.response)?this.response:[this.response];this._choiceElements.forEach(o=>{let s=i.includes(o.identifier);this._setChoiceChecked(o,s)})}}return Ie([mr("#validation-message")],e.prototype,"_validationMessageElement",void 0),Ie([p({type:Number,attribute:"min-choices"})],e.prototype,"minChoices",void 0),Ie([p({type:Number,attribute:"max-choices"})],e.prototype,"maxChoices",void 0),Ie([$("maxChoices")],e.prototype,"_handleMaxChoicesChange",null),Ie([$("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"_handleDisabledChange",void 0),Ie([$("readonly",{waitUntilFirstUpdate:!0})],e.prototype,"_handleReadonlyChange",void 0),Ie([p({attribute:"response",reflect:!1,converter:zt({emptyAs:""})})],e.prototype,"response",void 0),Ie([$("response",{waitUntilFirstUpdate:!0})],e.prototype,"_handleValueChange",void 0),e};var Ru=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},eh=(n,t)=>{class e extends n{#t=[];#e=["qti-labels-none","qti-labels-decimal","qti-labels-lower-alpha","qti-labels-upper-alpha"];#r=["qti-labels-suffix-none","qti-labels-suffix-period","qti-labels-suffix-parenthesis"];#i=null;set class(i){this.#t=this.#o(i),this.#n()}get class(){return this.#t.join(" ")}attributeChangedCallback(i,o,s){super.attributeChangedCallback(i,o,s),i==="class"&&o!==s&&(this.class=s??"")}updated(i){super.updated(i),this.#n()}connectedCallback(){super.connectedCallback(),this.class=this.getAttribute("class")??"",this.#i=new MutationObserver(i=>{i.some(o=>o.type==="childList"||o.type==="attributes"&&o.attributeName==="style")&&this.#n()}),this.#i.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]})}disconnectedCallback(){super.disconnectedCallback(),this.#i?.disconnect(),this.#i=null}#o(i){return i?i.split(/\s+/).map(o=>o.trim()).filter(Boolean).filter((o,s,a)=>a.indexOf(o)===s):[]}#n(){let i=Array.from(this.querySelectorAll("qti-simple-choice")).map(l=>l),o=this.#s(i),s=this.#a(),a=this.#c();o.forEach((l,c)=>{l.marker=this.#h(c+1,s,a)})}#s(i){return i.map((o,s)=>{let a=Number(o.style.order);return{el:o,order:Number.isFinite(a)?a:s+1,index:s}}).sort((o,s)=>o.order-s.order||o.index-s.index).map(o=>o.el)}#a(){return this.#t.filter(i=>this.#e.includes(i)).pop()??null}#c(){return this.#t.filter(i=>this.#r.includes(i)).pop()??null}#h(i,o,s){let a=o;if(!a&&s&&s!=="qti-labels-suffix-none"&&(a="qti-labels-upper-alpha"),!a||a==="qti-labels-none")return"";let l="";switch(a){case"qti-labels-decimal":l=`${i}`;break;case"qti-labels-lower-alpha":l=this.#l(i,"lower");break;case"qti-labels-upper-alpha":l=this.#l(i,"upper");break}return s==="qti-labels-suffix-period"?`${l}.`:s==="qti-labels-suffix-parenthesis"?`${l})`:l}#l(i,o){let s=i,a="",l=o==="lower"?97:65;for(;s>0;)s-=1,a=String.fromCharCode(l+s%26)+a,s=Math.floor(s/26);return a}}return Ru([p({type:String,attribute:"class"})],e.prototype,"class",null),e};var rh=[O,U,q`
6922
+ </div>`}updated(t){super.updated(t),t.has("_childrenMap")&&this.cacheInteractiveElements()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("register-qti-simple-associable-choice",this._registerChoiceHandler)}};Iu([_()],sr.prototype,"_childrenMap",void 0);var Io=[{tag:"qti-associate-interaction",ctor:sr}];var Ie=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},_e=(o,t)=>{class e extends o{constructor(){super(...arguments),this._choiceElements=[],this.#t=null,this.minChoices=0,this.maxChoices=1,this._handleDisabledChange=(n,i)=>{this._choiceElements.forEach(s=>s.disabled=i)},this._handleReadonlyChange=(n,i)=>{this._choiceElements.forEach(s=>s.readonly=i)},this.response="",this._handleValueChange=()=>{this._internals.setFormValue(this.value),this._updateChoiceSelection()}}#t;_handleMaxChoicesChange(n,i){this._determineInputType()}get value(){return Array.isArray(this.response)&&this.response.length===0||this.response===""?null:Array.isArray(this.response)?this.response.join(","):this.response}set value(n){this.maxChoices>1&&(typeof n=="string"||n===null)?this.response=n?n.toString().split(","):[]:this.response=n||""}firstUpdated(){super.firstUpdated(),this._updateChoiceSelection()}connectedCallback(){super.connectedCallback(),this.addEventListener(`activate-${t}`,this._choiceElementSelectedHandler),this.#t=new MutationObserver(()=>this._syncChoicesFromDOM()),this.#t.observe(this,{childList:!0,subtree:!0}),this._syncChoicesFromDOM()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(`activate-${t}`,this._choiceElementSelectedHandler),this.#t&&(this.#t.disconnect(),this.#t=null)}_syncChoicesFromDOM(){let n=new Set(this._choiceElements);this._choiceElements=Array.from(this.querySelectorAll(t)),this._choiceElements.forEach(s=>{n.has(s)||(this.disabled&&(s.disabled=!0),s.readonly=this.readonly,s.internals&&!s.internals.ariaChecked&&(s.internals.ariaChecked="false"))}),this._determineInputType();let i=new Set(this._choiceElements.map(s=>s.identifier));if(Array.isArray(this.response)){let s=this.response.filter(a=>i.has(a));s.length!==this.response.length&&(this.response=s)}else this.response&&!i.has(this.response)&&(this.response="");this._updateChoiceSelection()}validate(){let i=this._choiceElements.filter(c=>this._getChoiceChecked(c)).length,s=!0,a="";this.maxChoices!==0&&i>this.maxChoices?(s=!1,a=this.dataset.maxSelectionsMessage||`Please select no more than ${this.maxChoices} ${this.maxChoices===1?"option":"options"}.`):i<this.minChoices&&(s=!1,a=this.dataset.minSelectionsMessage||`Please select at least ${this.minChoices} ${this.minChoices===1?"option":"options"}.`);let l=this._choiceElements.find(c=>this.contains(c))||this;return this.setInteractionValidity(s,a,l,{suppressInline:!0}),s}reportValidity(){return super.reportValidity()}_determineInputType(){this._internals.role=this.maxChoices===1?"radiogroup":null;let n=this.maxChoices===1?"radio":"checkbox";this._interactionContext.choiceRole!==n&&(this._interactionContext={...this._interactionContext,choiceRole:n})}_choiceElementSelectedHandler(n){this._toggleChoiceChecked(n.target);let i=this.resolveDisableAfterMaxReached({defaultWhenUnset:!1});this.maxChoices===1?this._choiceElements.forEach(s=>{s.identifier!==n.detail.identifier&&this._setChoiceChecked(s,!1)}):this.maxChoices!==0&&i&&(this._choiceElements.filter(a=>this._getChoiceChecked(a)).length>=this.maxChoices?this._choiceElements.forEach(a=>{this._getChoiceChecked(a)||(a.disabled=!0)}):this._choiceElements.forEach(a=>a.disabled=!1)),this._handleChoiceSelection()}_setChoiceChecked(n,i){n.internals?.states&&(i?(n.internals.states.add("checked"),n.internals.ariaChecked="true"):(n.internals.states.delete("checked"),n.internals.ariaChecked="false"))}_getChoiceChecked(n){return n.internals.states.has("checked")}_toggleChoiceChecked(n){let i=this._getChoiceChecked(n);this._setChoiceChecked(n,!i)}_handleChoiceSelection(){let i=this._choiceElements.filter(s=>this._getChoiceChecked(s)).map(s=>s.identifier);this.response=this.maxChoices===1?i[0]||"":i,this.validate(),this.reportValidity(),this.saveResponse(this.response)}_updateChoiceSelection(){let n=Array.isArray(this.response)?this.response:[this.response];this._choiceElements.forEach(i=>{let s=n.includes(i.identifier);this._setChoiceChecked(i,s)})}}return Ie([mr("#validation-message")],e.prototype,"_validationMessageElement",void 0),Ie([p({type:Number,attribute:"min-choices"})],e.prototype,"minChoices",void 0),Ie([p({type:Number,attribute:"max-choices"})],e.prototype,"maxChoices",void 0),Ie([$("maxChoices")],e.prototype,"_handleMaxChoicesChange",null),Ie([$("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"_handleDisabledChange",void 0),Ie([$("readonly",{waitUntilFirstUpdate:!0})],e.prototype,"_handleReadonlyChange",void 0),Ie([p({attribute:"response",reflect:!1,converter:zt({emptyAs:""})})],e.prototype,"response",void 0),Ie([$("response",{waitUntilFirstUpdate:!0})],e.prototype,"_handleValueChange",void 0),e};var Tu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},eh=(o,t)=>{class e extends o{#t=[];#e=["qti-labels-none","qti-labels-decimal","qti-labels-lower-alpha","qti-labels-upper-alpha"];#r=["qti-labels-suffix-none","qti-labels-suffix-period","qti-labels-suffix-parenthesis"];#n=null;set class(n){this.#t=this.#i(n),this.#o()}get class(){return this.#t.join(" ")}attributeChangedCallback(n,i,s){super.attributeChangedCallback(n,i,s),n==="class"&&i!==s&&(this.class=s??"")}updated(n){super.updated(n),this.#o()}connectedCallback(){super.connectedCallback(),this.class=this.getAttribute("class")??"",this.#n=new MutationObserver(n=>{n.some(i=>i.type==="childList"||i.type==="attributes"&&i.attributeName==="style")&&this.#o()}),this.#n.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]})}disconnectedCallback(){super.disconnectedCallback(),this.#n?.disconnect(),this.#n=null}#i(n){return n?n.split(/\s+/).map(i=>i.trim()).filter(Boolean).filter((i,s,a)=>a.indexOf(i)===s):[]}#o(){let n=Array.from(this.querySelectorAll("qti-simple-choice")).map(l=>l),i=this.#s(n),s=this.#a(),a=this.#c();i.forEach((l,c)=>{l.marker=this.#h(c+1,s,a)})}#s(n){return n.map((i,s)=>{let a=Number(i.style.order);return{el:i,order:Number.isFinite(a)?a:s+1,index:s}}).sort((i,s)=>i.order-s.order||i.index-s.index).map(i=>i.el)}#a(){return this.#t.filter(n=>this.#e.includes(n)).pop()??null}#c(){return this.#t.filter(n=>this.#r.includes(n)).pop()??null}#h(n,i,s){let a=i;if(!a&&s&&s!=="qti-labels-suffix-none"&&(a="qti-labels-upper-alpha"),!a||a==="qti-labels-none")return"";let l="";switch(a){case"qti-labels-decimal":l=`${n}`;break;case"qti-labels-lower-alpha":l=this.#l(n,"lower");break;case"qti-labels-upper-alpha":l=this.#l(n,"upper");break}return s==="qti-labels-suffix-period"?`${l}.`:s==="qti-labels-suffix-parenthesis"?`${l})`:l}#l(n,i){let s=n,a="",l=i==="lower"?97:65;for(;s>0;)s-=1,a=String.fromCharCode(l+s%26)+a,s=Math.floor(s/26);return a}}return Tu([p({type:String,attribute:"class"})],e.prototype,"class",null),e};var rh=[O,U,q`
6923
6923
  :host {
6924
6924
  display: block;
6925
6925
  }
@@ -6986,16 +6986,16 @@ div.full-correct-response-inline {
6986
6986
  :host(.qti-orientation-vertical) ::slotted(qti-simple-choice:nth-child(even)) {
6987
6987
  grid-row: auto;
6988
6988
  }
6989
- `];var Ou=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ar=class extends eh(_e(D,"qti-simple-choice"),"qti-simple-choice"){constructor(){super(...arguments),this.orientation="vertical"}static{this.styles=rh}#t(){let t=this.querySelectorAll("qti-simple-choice");this.style.setProperty("--item-count",t.length.toString())}render(){return b`
6989
+ `];var Ru=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ar=class extends eh(_e(D,"qti-simple-choice"),"qti-simple-choice"){constructor(){super(...arguments),this.orientation="vertical"}static{this.styles=rh}#t(){let t=this.querySelectorAll("qti-simple-choice");this.style.setProperty("--item-count",t.length.toString())}render(){return b`
6990
6990
  <slot part="prompt" name="prompt"></slot>
6991
6991
  <slot part="slot" @slotchange=${this.#t}></slot>
6992
6992
  <div part="message" role="alert" id="validation-message"></div>
6993
- `}};Ou([p({type:String})],ar.prototype,"orientation",void 0);var _n=[{tag:"qti-choice-interaction",ctor:ar}];var ih=[O,q`
6993
+ `}};Ru([p({type:String})],ar.prototype,"orientation",void 0);var _o=[{tag:"qti-choice-interaction",ctor:ar}];var nh=[O,q`
6994
6994
  /* The box this element already had. See the note in qti-match-interaction.styles.ts. */
6995
6995
  :host {
6996
6996
  display: block;
6997
6997
  }
6998
- `];var Gi=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},oc=`
6998
+ `];var Xn=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ic=`
6999
6999
  const postToParentWindows = (type, data) => {
7000
7000
  window.top.postMessage(data ? { type, data } : { type }, '*');
7001
7001
  let w = window.parent;
@@ -7062,7 +7062,7 @@ window.CES = {
7062
7062
  },
7063
7063
  };
7064
7064
  CES.load();
7065
- `,Pu=`
7065
+ `,Ou=`
7066
7066
  (function() {
7067
7067
  var blobUrlReceived = null;
7068
7068
 
@@ -7106,7 +7106,7 @@ CES.load();
7106
7106
  requestBlobUrl();
7107
7107
  }
7108
7108
  })();
7109
- `,se=class extends D{#t;#e;#r;static{this.styles=ih}constructor(){super(),this.#t="",this.#e=null,this.#r=null,this._errorMessage=null,this.#i=null,this.handlePostMessage=this.handlePostMessage.bind(this)}#i;connectedCallback(){super.connectedCallback();let t=this.data;if(!t){let r=this.querySelector("object[data]");if(r){t=r.getAttribute("data");let i=r.getAttribute("width"),o=r.getAttribute("height");i&&this.setAttribute("width",i),o&&this.setAttribute("height",o)}}if(!t){this._errorMessage="No manifest path found (neither data attribute nor object child)";return}let e=t.startsWith("http")||t.startsWith("blob")?t:_o((this.baseItemUrl||"")+"/"+t);this.#e=new URL(e,window.location.href).toString(),fetch(e).then(r=>r.json()).then(r=>{this.manifest=r,this.setupCES()}).catch(r=>{this._errorMessage=r})}async setupCES(){await this.updateComplete;let t=this.shadowRoot?.querySelector("#pciContainer");if(!t){this._errorMessage="pciContainer iframe not found";return}t.getAttribute("src")||t.setAttribute("src","about:blank");let e=t.contentDocument??t.contentWindow?.document??null;if(e||(await new Promise(d=>t.addEventListener("load",()=>d(),{once:!0})),e=t.contentDocument??t.contentWindow?.document??null),!e){this._errorMessage="pciContainer iframe document not available";return}if(!this.manifest.script||this.manifest.script.length===0){this._errorMessage="No script found in manifest";return}if(!this.manifest.style||this.manifest.style.length===0){this._errorMessage="No style found in manifest";return}let r=this.manifest.style[0],i=this.#a(),o=await this.#l(r,i),s=o.url;if(o.baseUrl&&!this.#r&&(this.#r=o.baseUrl),!0){let d="";if(this.manifest.media&&this.manifest.media.length>0){let h=this.manifest.media[0],f=await this.#l(h,i,{returnText:!0});if(d=f.url,f.baseUrl&&!this.#r&&(this.#r=f.baseUrl),f.text){let m=f.text;if(!(m.includes("postToParentWindows")||m.includes("window.CES"))){let u="<script>"+oc+"</script>",g=m.indexOf("<head>");g!==-1?m=m.slice(0,g+6)+u+m.slice(g+6):m=u+m}let x=new Blob([m],{type:"text/html"});this.#i=URL.createObjectURL(x)}}else{let h=this.data||"manifest.json",f=h.includes("/")?h.substring(0,h.lastIndexOf("/")):"",m=f?`${f}/index.html`:"index.html",w=await this.#l(m,i,{returnText:!0});if(d=w.url,w.baseUrl&&!this.#r&&(this.#r=w.baseUrl),w.text){let x=w.text;if(!(x.includes("postToParentWindows")||x.includes("window.CES"))){let y="<script>"+oc+"</script>",v=x.indexOf("<head>");v!==-1?x=x.slice(0,v+6)+y+x.slice(v+6):x=y+x}let g=new Blob([x],{type:"text/html"});this.#i=URL.createObjectURL(g)}}if(d&&!this.#i)try{let h=await fetch(d);if(h.ok){let f=await h.text();if(!(f.includes("postToParentWindows")||f.includes("window.CES"))){let x="<script>"+oc+"</script>",u=f.indexOf("<head>");u!==-1?f=f.slice(0,u+6)+x+f.slice(u+6):f=x+f}let w=new Blob([f],{type:"text/html"});this.#i=URL.createObjectURL(w)}else console.error(`Failed to fetch index.html: ${h.status}`)}catch(h){console.error(`Error fetching index.html: ${h}`)}}let l=`<script>${Pu}</script>`;window.addEventListener("message",this.handlePostMessage);let c=`
7109
+ `,se=class extends D{#t;#e;#r;static{this.styles=nh}constructor(){super(),this.#t="",this.#e=null,this.#r=null,this._errorMessage=null,this.#n=null,this.handlePostMessage=this.handlePostMessage.bind(this)}#n;connectedCallback(){super.connectedCallback();let t=this.data;if(!t){let r=this.querySelector("object[data]");if(r){t=r.getAttribute("data");let n=r.getAttribute("width"),i=r.getAttribute("height");n&&this.setAttribute("width",n),i&&this.setAttribute("height",i)}}if(!t){this._errorMessage="No manifest path found (neither data attribute nor object child)";return}let e=t.startsWith("http")||t.startsWith("blob")?t:_i((this.baseItemUrl||"")+"/"+t);this.#e=new URL(e,window.location.href).toString(),fetch(e).then(r=>r.json()).then(r=>{this.manifest=r,this.setupCES()}).catch(r=>{this._errorMessage=r})}async setupCES(){await this.updateComplete;let t=this.shadowRoot?.querySelector("#pciContainer");if(!t){this._errorMessage="pciContainer iframe not found";return}t.getAttribute("src")||t.setAttribute("src","about:blank");let e=t.contentDocument??t.contentWindow?.document??null;if(e||(await new Promise(d=>t.addEventListener("load",()=>d(),{once:!0})),e=t.contentDocument??t.contentWindow?.document??null),!e){this._errorMessage="pciContainer iframe document not available";return}if(!this.manifest.script||this.manifest.script.length===0){this._errorMessage="No script found in manifest";return}if(!this.manifest.style||this.manifest.style.length===0){this._errorMessage="No style found in manifest";return}let r=this.manifest.style[0],n=this.#a(),i=await this.#l(r,n),s=i.url;if(i.baseUrl&&!this.#r&&(this.#r=i.baseUrl),!0){let d="";if(this.manifest.media&&this.manifest.media.length>0){let h=this.manifest.media[0],f=await this.#l(h,n,{returnText:!0});if(d=f.url,f.baseUrl&&!this.#r&&(this.#r=f.baseUrl),f.text){let m=f.text;if(!(m.includes("postToParentWindows")||m.includes("window.CES"))){let u="<script>"+ic+"</script>",g=m.indexOf("<head>");g!==-1?m=m.slice(0,g+6)+u+m.slice(g+6):m=u+m}let x=new Blob([m],{type:"text/html"});this.#n=URL.createObjectURL(x)}}else{let h=this.data||"manifest.json",f=h.includes("/")?h.substring(0,h.lastIndexOf("/")):"",m=f?`${f}/index.html`:"index.html",w=await this.#l(m,n,{returnText:!0});if(d=w.url,w.baseUrl&&!this.#r&&(this.#r=w.baseUrl),w.text){let x=w.text;if(!(x.includes("postToParentWindows")||x.includes("window.CES"))){let y="<script>"+ic+"</script>",v=x.indexOf("<head>");v!==-1?x=x.slice(0,v+6)+y+x.slice(v+6):x=y+x}let g=new Blob([x],{type:"text/html"});this.#n=URL.createObjectURL(g)}}if(d&&!this.#n)try{let h=await fetch(d);if(h.ok){let f=await h.text();if(!(f.includes("postToParentWindows")||f.includes("window.CES"))){let x="<script>"+ic+"</script>",u=f.indexOf("<head>");u!==-1?f=f.slice(0,u+6)+x+f.slice(u+6):f=x+f}let w=new Blob([f],{type:"text/html"});this.#n=URL.createObjectURL(w)}else console.error(`Failed to fetch index.html: ${h.status}`)}catch(h){console.error(`Error fetching index.html: ${h}`)}}let l=`<script>${Ou}</script>`;window.addEventListener("message",this.handlePostMessage);let c=`
7110
7110
  <!DOCTYPE html>
7111
7111
  <html>
7112
7112
  <head>
@@ -7115,7 +7115,7 @@ CES.load();
7115
7115
  </head>
7116
7116
  <body></body>
7117
7117
  </html>
7118
- `;t.srcdoc=c}#o(){let t=this.shadowRoot.querySelectorAll("iframe"),e=this.querySelectorAll("iframe"),r=[...t,...e];for(let i of r){let o=i.src;if(new URL(o,window.location.href).origin===window.location.origin)try{let a=i.contentDocument||i.contentWindow.document;a&&this.#n(a,r)}catch(a){console.error("Error accessing nested iframe:",a)}}return r.forEach((i,o)=>{r.indexOf(i)!==o&&r.splice(o,1)}),r}#n(t,e=[]){return t.querySelectorAll("iframe").forEach(i=>{e.push(i);let o=i.src;if(new URL(o,window.location.href).origin===window.location.origin)try{let a=i.contentDocument||i.contentWindow.document;this.#n(a,e)}catch(a){console.error("Error accessing nested iframe:",a)}else console.warn("Skipped cross-origin iframe:",o)}),e}#s(t,e){window.postMessage({type:t,data:e},"*");let r=this.#o();for(let i of r)i.contentWindow&&i.contentWindow.postMessage({type:t,data:e},"*")}handlePostMessage(t){let{type:e,data:r}=t.data;switch(e){case"setResponse":(r===null||!(Array.isArray(r)&&r.length===1&&r[0]===""))&&(this.#t=r,this.saveResponse(r));break;case"getResponse":{this.#s("responseData",this.#t);break}case"getBlobUrl":{this.#i&&(this.#s("blobUrl",this.#i),t.source&&t.source!==window&&t.source.postMessage({type:"blobUrl",data:this.#i},"*"));break}case"getMedia":{let i=this.#a(),o=this.manifest.media.map(s=>{if(s.startsWith("http")||s.startsWith("blob"))return s;let a=this.#r||i[0];return a?new URL(s,a.endsWith("/")?a:`${a}/`).toString():s});this.#s("mediaData",o);break}case"setStageHeight":console.log("setStageHeight not implemented");break}}validate(){if(!this.#t)return!1;if(Array.isArray(this.#t)){if(this.#t.length===0)return!1;for(let t of this.#t)if(t!==""&&t!==null)return!0}return!0}get response(){return this.#t||null}set response(t){if(typeof t=="string")this.#t=t,this.saveResponse(t);else if(Array.isArray(t))this.#t=t;else if(t)throw new Error("Value must be a string or an array of strings")}disconnectedCallback(){window.removeEventListener("message",this.handlePostMessage),super.disconnectedCallback()}render(){return b`<iframe
7118
+ `;t.srcdoc=c}#i(){let t=this.shadowRoot.querySelectorAll("iframe"),e=this.querySelectorAll("iframe"),r=[...t,...e];for(let n of r){let i=n.src;if(new URL(i,window.location.href).origin===window.location.origin)try{let a=n.contentDocument||n.contentWindow.document;a&&this.#o(a,r)}catch(a){console.error("Error accessing nested iframe:",a)}}return r.forEach((n,i)=>{r.indexOf(n)!==i&&r.splice(i,1)}),r}#o(t,e=[]){return t.querySelectorAll("iframe").forEach(n=>{e.push(n);let i=n.src;if(new URL(i,window.location.href).origin===window.location.origin)try{let a=n.contentDocument||n.contentWindow.document;this.#o(a,e)}catch(a){console.error("Error accessing nested iframe:",a)}else console.warn("Skipped cross-origin iframe:",i)}),e}#s(t,e){window.postMessage({type:t,data:e},"*");let r=this.#i();for(let n of r)n.contentWindow&&n.contentWindow.postMessage({type:t,data:e},"*")}handlePostMessage(t){let{type:e,data:r}=t.data;switch(e){case"setResponse":(r===null||!(Array.isArray(r)&&r.length===1&&r[0]===""))&&(this.#t=r,this.saveResponse(r));break;case"getResponse":{this.#s("responseData",this.#t);break}case"getBlobUrl":{this.#n&&(this.#s("blobUrl",this.#n),t.source&&t.source!==window&&t.source.postMessage({type:"blobUrl",data:this.#n},"*"));break}case"getMedia":{let n=this.#a(),i=this.manifest.media.map(s=>{if(s.startsWith("http")||s.startsWith("blob"))return s;let a=this.#r||n[0];return a?new URL(s,a.endsWith("/")?a:`${a}/`).toString():s});this.#s("mediaData",i);break}case"setStageHeight":console.log("setStageHeight not implemented");break}}validate(){if(!this.#t)return!1;if(Array.isArray(this.#t)){if(this.#t.length===0)return!1;for(let t of this.#t)if(t!==""&&t!==null)return!0}return!0}get response(){return this.#t||null}set response(t){if(typeof t=="string")this.#t=t,this.saveResponse(t);else if(Array.isArray(t))this.#t=t;else if(t)throw new Error("Value must be a string or an array of strings")}disconnectedCallback(){window.removeEventListener("message",this.handlePostMessage),super.disconnectedCallback()}render(){return b`<iframe
7119
7119
  width=${this.getAttribute("width")}
7120
7120
  height=${this.getAttribute("height")}
7121
7121
  frameborder="0"
@@ -7126,7 +7126,7 @@ CES.load();
7126
7126
  ${this._errorMessage&&b`<div style="color:red">
7127
7127
  <h1>Error</h1>
7128
7128
  ${this._errorMessage}
7129
- </div>`}`}#a(){let e=[this.#r,this.baseRefUrl,this.baseItemUrl,this.#c()].filter(Boolean).map(i=>new URL(i,window.location.href).toString()),r=this.#h();return r&&e.push(r),[...new Set(e)]}#c(){return this.#e?new URL(".",this.#e).toString():null}#h(){return this.#e?new URL("..",this.#e).toString():null}async#l(t,e,r={}){if(!t)return{url:"",baseUrl:null};if(t.startsWith("http")||t.startsWith("blob"))return{url:t,baseUrl:null};for(let i of e){let o=new URL(i,window.location.href).toString(),s=new URL(t,o.endsWith("/")?o:`${o}/`).toString();try{let a=await fetch(s);if(a.ok){if(r.returnText){let l=await a.text();return{url:s,baseUrl:o,text:l}}return{url:s,baseUrl:o}}}catch{}}return{url:"",baseUrl:null}}};Gi([p({type:String,attribute:"data"})],se.prototype,"data",void 0);Gi([p({type:String,attribute:"data-base-item"})],se.prototype,"baseItemUrl",void 0);Gi([p({type:String,attribute:"data-base-ref"})],se.prototype,"baseRefUrl",void 0);Gi([p({type:String,attribute:"id"})],se.prototype,"id",void 0);Gi([_()],se.prototype,"_errorMessage",void 0);var Tn=[{tag:"qti-custom-interaction",ctor:se}];var oh=[O];var Rn=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Te=class extends C{constructor(){super(...arguments),this.disabled=!1,this.countAttempt=null,this.title="end attempt"}static{this.styles=oh}render(){return b`<button ?disabled=${this.disabled} part="button" @click=${this.endAttempt}>${this.title}</button>`}endAttempt(t){this.dispatchEvent(new CustomEvent("end-attempt",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,countAttempt:this.countAttempt==="true"}}))}};Rn([p({type:String,attribute:"response-identifier"})],Te.prototype,"responseIdentifier",void 0);Rn([p({reflect:!0,type:Boolean})],Te.prototype,"disabled",void 0);Rn([p({type:String,attribute:"count-attempt"})],Te.prototype,"countAttempt",void 0);Rn([p({type:String})],Te.prototype,"title",void 0);var On=[{tag:"qti-end-attempt-interaction",ctor:Te}];var nh=[O,q`
7129
+ </div>`}`}#a(){let e=[this.#r,this.baseRefUrl,this.baseItemUrl,this.#c()].filter(Boolean).map(n=>new URL(n,window.location.href).toString()),r=this.#h();return r&&e.push(r),[...new Set(e)]}#c(){return this.#e?new URL(".",this.#e).toString():null}#h(){return this.#e?new URL("..",this.#e).toString():null}async#l(t,e,r={}){if(!t)return{url:"",baseUrl:null};if(t.startsWith("http")||t.startsWith("blob"))return{url:t,baseUrl:null};for(let n of e){let i=new URL(n,window.location.href).toString(),s=new URL(t,i.endsWith("/")?i:`${i}/`).toString();try{let a=await fetch(s);if(a.ok){if(r.returnText){let l=await a.text();return{url:s,baseUrl:i,text:l}}return{url:s,baseUrl:i}}}catch{}}return{url:"",baseUrl:null}}};Xn([p({type:String,attribute:"data"})],se.prototype,"data",void 0);Xn([p({type:String,attribute:"data-base-item"})],se.prototype,"baseItemUrl",void 0);Xn([p({type:String,attribute:"data-base-ref"})],se.prototype,"baseRefUrl",void 0);Xn([p({type:String,attribute:"id"})],se.prototype,"id",void 0);Xn([_()],se.prototype,"_errorMessage",void 0);var To=[{tag:"qti-custom-interaction",ctor:se}];var ih=[O];var Ro=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Te=class extends C{constructor(){super(...arguments),this.disabled=!1,this.countAttempt=null,this.title="end attempt"}static{this.styles=ih}render(){return b`<button ?disabled=${this.disabled} part="button" @click=${this.endAttempt}>${this.title}</button>`}endAttempt(t){this.dispatchEvent(new CustomEvent("end-attempt",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,countAttempt:this.countAttempt==="true"}}))}};Ro([p({type:String,attribute:"response-identifier"})],Te.prototype,"responseIdentifier",void 0);Ro([p({reflect:!0,type:Boolean})],Te.prototype,"disabled",void 0);Ro([p({type:String,attribute:"count-attempt"})],Te.prototype,"countAttempt",void 0);Ro([p({type:String})],Te.prototype,"title",void 0);var Oo=[{tag:"qti-end-attempt-interaction",ctor:Te}];var oh=[O,q`
7130
7130
  /* PK: display host as block, else design will be collapsed */
7131
7131
  /* 'position: relative' anchors the correction glyph the theme draws over the textarea. */
7132
7132
  :host {
@@ -7139,7 +7139,7 @@ CES.load();
7139
7139
  height: 100%;
7140
7140
  border: 0;
7141
7141
  }
7142
- `];var vt=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},sh=5,Mu=50,ah="qti-height-lines-",ch=!1,Q=class extends D{constructor(){super(...arguments),this._rows=sh,this.format="plain",this._handleFormatChange=()=>{this.format!=="xhtml"||ch||(ch=!0,console.warn('<qti-extended-text-interaction format="xhtml"> renders as plain text. The interaction has no rich-text editor; the recorded response will contain no markup.'))},this.response=null,this._handleResponseChange=()=>{this._internals.setFormValue(this.value),this.validate()}}static{this.styles=nh}_handleRowsInputChange(){this._rows=this.#t()}#t(){let t=this.#e();return t!==null?t:this.expectedLines>0?this.expectedLines:this.expectedLength>0?Math.ceil(this.expectedLength/Mu):sh}#e(){for(let t of(this.classNames??"").split(" ")){if(!t.startsWith(ah))continue;let e=parseInt(t.slice(ah.length),10);if(!Number.isNaN(e)&&e>0)return e}return null}get value(){return this.response||null}set value(t){this.response=t||null}validate(){let t=this.shadowRoot.querySelector("textarea");if(!t)return!1;let e="",r=!1;if(this.patternMask&&this.dataPatternmaskMessage){t.setCustomValidity("");let i=this.patternMask.startsWith("^")&&this.patternMask.endsWith("$")?this.patternMask:`^${this.patternMask}$`,o=new RegExp(i);r=t.checkValidity()&&o.test(t.value),r||(e=this.dataPatternmaskMessage,t.setCustomValidity(this.dataPatternmaskMessage))}else r=t.checkValidity();return r&&!this.response&&(r=!1),!r&&!e&&(e=t.validationMessage||"Invalid value."),this.setInteractionValidity(r,e,t,{suppressInline:!0}),r}reportValidity(){return this.validate(),super.reportValidity()}renderPrompt(){return b`<slot name="prompt"></slot>`}renderTextarea(){return b`<textarea
7142
+ `];var vt=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},sh=5,Pu=50,ah="qti-height-lines-",ch=!1,Q=class extends D{constructor(){super(...arguments),this._rows=sh,this.format="plain",this._handleFormatChange=()=>{this.format!=="xhtml"||ch||(ch=!0,console.warn('<qti-extended-text-interaction format="xhtml"> renders as plain text. The interaction has no rich-text editor; the recorded response will contain no markup.'))},this.response=null,this._handleResponseChange=()=>{this._internals.setFormValue(this.value),this.validate()}}static{this.styles=oh}_handleRowsInputChange(){this._rows=this.#t()}#t(){let t=this.#e();return t!==null?t:this.expectedLines>0?this.expectedLines:this.expectedLength>0?Math.ceil(this.expectedLength/Pu):sh}#e(){for(let t of(this.classNames??"").split(" ")){if(!t.startsWith(ah))continue;let e=parseInt(t.slice(ah.length),10);if(!Number.isNaN(e)&&e>0)return e}return null}get value(){return this.response||null}set value(t){this.response=t||null}validate(){let t=this.shadowRoot.querySelector("textarea");if(!t)return!1;let e="",r=!1;if(this.patternMask&&this.dataPatternmaskMessage){t.setCustomValidity("");let n=this.patternMask.startsWith("^")&&this.patternMask.endsWith("$")?this.patternMask:`^${this.patternMask}$`,i=new RegExp(n);r=t.checkValidity()&&i.test(t.value),r||(e=this.dataPatternmaskMessage,t.setCustomValidity(this.dataPatternmaskMessage))}else r=t.checkValidity();return r&&!this.response&&(r=!1),!r&&!e&&(e=t.validationMessage||"Invalid value."),this.setInteractionValidity(r,e,t,{suppressInline:!0}),r}reportValidity(){return this.validate(),super.reportValidity()}renderPrompt(){return b`<slot name="prompt"></slot>`}renderTextarea(){return b`<textarea
7143
7143
  part="textarea"
7144
7144
  name="${this.responseIdentifier}"
7145
7145
  spellcheck="false"
@@ -7154,7 +7154,7 @@ CES.load();
7154
7154
  ?disabled="${this.disabled}"
7155
7155
  ?readonly="${this.readonly}"
7156
7156
  .value=${this.response}
7157
- ></textarea>`}renderValidationMessage(){return b`<div id="validation-message" part="message" role="alert" style="display:none;"></div>`}render(){return b`${this.renderPrompt()}${this.renderTextarea()} ${this.renderValidationMessage()}`}textChanged(t){if(this.disabled||this.readonly)return;let e=t.target;this.response!==e.value&&(this.value=e.value,this.saveResponse(e.value))}};vt([_()],Q.prototype,"_rows",void 0);vt([p({type:Number,attribute:"expected-length"})],Q.prototype,"expectedLength",void 0);vt([p({type:Number,attribute:"expected-lines"})],Q.prototype,"expectedLines",void 0);vt([p({type:String,reflect:!0})],Q.prototype,"format",void 0);vt([$("format")],Q.prototype,"_handleFormatChange",void 0);vt([p({type:String,attribute:"pattern-mask"})],Q.prototype,"patternMask",void 0);vt([p({type:String,attribute:"placeholder-text"})],Q.prototype,"placeholderText",void 0);vt([p({type:String,attribute:"data-patternmask-message"})],Q.prototype,"dataPatternmaskMessage",void 0);vt([p({type:String,attribute:"class"})],Q.prototype,"classNames",void 0);vt([$(["classNames","expectedLines","expectedLength"])],Q.prototype,"_handleRowsInputChange",null);vt([p({type:String,attribute:"response",reflect:!1})],Q.prototype,"response",void 0);vt([$("response",{waitUntilFirstUpdate:!0})],Q.prototype,"_handleResponseChange",void 0);var Pn=[{tag:"qti-extended-text-interaction",ctor:Q}];var lh=[O,U,q`
7157
+ ></textarea>`}renderValidationMessage(){return b`<div id="validation-message" part="message" role="alert" style="display:none;"></div>`}render(){return b`${this.renderPrompt()}${this.renderTextarea()} ${this.renderValidationMessage()}`}textChanged(t){if(this.disabled||this.readonly)return;let e=t.target;this.response!==e.value&&(this.value=e.value,this.saveResponse(e.value))}};vt([_()],Q.prototype,"_rows",void 0);vt([p({type:Number,attribute:"expected-length"})],Q.prototype,"expectedLength",void 0);vt([p({type:Number,attribute:"expected-lines"})],Q.prototype,"expectedLines",void 0);vt([p({type:String,reflect:!0})],Q.prototype,"format",void 0);vt([$("format")],Q.prototype,"_handleFormatChange",void 0);vt([p({type:String,attribute:"pattern-mask"})],Q.prototype,"patternMask",void 0);vt([p({type:String,attribute:"placeholder-text"})],Q.prototype,"placeholderText",void 0);vt([p({type:String,attribute:"data-patternmask-message"})],Q.prototype,"dataPatternmaskMessage",void 0);vt([p({type:String,attribute:"class"})],Q.prototype,"classNames",void 0);vt([$(["classNames","expectedLines","expectedLength"])],Q.prototype,"_handleRowsInputChange",null);vt([p({type:String,attribute:"response",reflect:!1})],Q.prototype,"response",void 0);vt([$("response",{waitUntilFirstUpdate:!0})],Q.prototype,"_handleResponseChange",void 0);var Po=[{tag:"qti-extended-text-interaction",ctor:Q}];var lh=[O,U,q`
7158
7158
  :host {
7159
7159
  display: flex;
7160
7160
  align-items: flex-start;
@@ -7201,7 +7201,7 @@ CES.load();
7201
7201
  `];var Vr=class extends Ot(Rt(D,"qti-gap-text","qti-gap","slot[part~='drags']"),'[qti-draggable="true"]'){static{this.styles=lh}render(){return b`<slot name="prompt"> </slot>
7202
7202
  <slot part="drags" name="drags"></slot>
7203
7203
  <slot part="drops"></slot>
7204
- <div role="alert" part="message" id="validation-message"></div>`}};var Mn=[{tag:"qti-gap-match-interaction",ctor:Vr}];function Re(n,t,e,r){let i=e.getAttribute("width")?parseFloat(e.getAttribute("width")):e.naturalWidth,o=e.getAttribute("height")?parseFloat(e.getAttribute("height")):e.naturalHeight;switch(n){case"circle":{if(t.length!==3){console.error("Invalid circle coordinates:",t);return}let[s,a,l]=t,c=s/i*100,d=a/o*100,h=l/i*100,f=l/o*100;r.style.left=c-h+"%",r.style.top=d-f+"%",r.style.width=2*h+"%",r.style.height=2*f+"%",r.style.borderRadius="50%"}break;case"rect":{if(t.length!==4){console.error("Invalid rectangle coordinates:",t);return}let[s,a,l,c]=t,d=s/i*100,h=a/o*100,f=l/i*100,m=c/o*100;r.style.left=d+"%",r.style.top=h+"%",r.style.width=f-d+"%",r.style.height=m-h+"%"}break;case"ellipse":{if(t.length!==4){console.error("Invalid ellipse coordinates:",t);return}let[s,a,l,c]=t,d=s/i*100,h=a/o*100,f=l/i*100,m=c/o*100;r.style.left=d-f+"%",r.style.top=h-m+"%",r.style.width=2*f+"%",r.style.height=2*m+"%",r.style.borderRadius="50%"}break;case"poly":{if(t.length<6||t.length%2!==0){console.error("Invalid polygon coordinates:",t);return}let s=[];for(let v=0;v<t.length;v+=2)s.push({x:t[v],y:t[v+1]});let a=Math.min(...s.map(v=>v.x)),l=Math.max(...s.map(v=>v.x)),c=Math.min(...s.map(v=>v.y)),d=Math.max(...s.map(v=>v.y)),h=a/i*100,f=c/o*100,m=l/i*100,w=d/o*100;r.style.left=h+"%",r.style.top=f+"%",r.style.width=m-h+"%",r.style.height=w-f+"%";let x=s.map(v=>({x:(v.x-a)/(l-a)*100,y:(v.y-c)/(d-c)*100})),u=x.map(v=>`${v.x}% ${v.y}%`).join(",");r.style.clipPath=`polygon(${u})`;let g=x.map(v=>`${v.x},${v.y}`).join(" "),y=v=>`url("data:image/svg+xml,${encodeURIComponent(`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><polygon points='${g}' fill='none' stroke='black' stroke-width='${v}' vector-effect='non-scaling-stroke' stroke-linejoin='round'/></svg>`)}")`;r.style.setProperty("--qti-shape-outline",y(4)),r.style.setProperty("--qti-shape-outline-bold",y(8))}break;default:console.error(`Unsupported shape: ${n}`);break}}var dh=[O,U,q`
7204
+ <div role="alert" part="message" id="validation-message"></div>`}};var Mo=[{tag:"qti-gap-match-interaction",ctor:Vr}];function Re(o,t,e,r){let n=e.getAttribute("width")?parseFloat(e.getAttribute("width")):e.naturalWidth,i=e.getAttribute("height")?parseFloat(e.getAttribute("height")):e.naturalHeight;switch(o){case"circle":{if(t.length!==3){console.error("Invalid circle coordinates:",t);return}let[s,a,l]=t,c=s/n*100,d=a/i*100,h=l/n*100,f=l/i*100;r.style.left=c-h+"%",r.style.top=d-f+"%",r.style.width=2*h+"%",r.style.height=2*f+"%",r.style.borderRadius="50%"}break;case"rect":{if(t.length!==4){console.error("Invalid rectangle coordinates:",t);return}let[s,a,l,c]=t,d=s/n*100,h=a/i*100,f=l/n*100,m=c/i*100;r.style.left=d+"%",r.style.top=h+"%",r.style.width=f-d+"%",r.style.height=m-h+"%"}break;case"ellipse":{if(t.length!==4){console.error("Invalid ellipse coordinates:",t);return}let[s,a,l,c]=t,d=s/n*100,h=a/i*100,f=l/n*100,m=c/i*100;r.style.left=d-f+"%",r.style.top=h-m+"%",r.style.width=2*f+"%",r.style.height=2*m+"%",r.style.borderRadius="50%"}break;case"poly":{if(t.length<6||t.length%2!==0){console.error("Invalid polygon coordinates:",t);return}let s=[];for(let v=0;v<t.length;v+=2)s.push({x:t[v],y:t[v+1]});let a=Math.min(...s.map(v=>v.x)),l=Math.max(...s.map(v=>v.x)),c=Math.min(...s.map(v=>v.y)),d=Math.max(...s.map(v=>v.y)),h=a/n*100,f=c/i*100,m=l/n*100,w=d/i*100;r.style.left=h+"%",r.style.top=f+"%",r.style.width=m-h+"%",r.style.height=w-f+"%";let x=s.map(v=>({x:(v.x-a)/(l-a)*100,y:(v.y-c)/(d-c)*100})),u=x.map(v=>`${v.x}% ${v.y}%`).join(",");r.style.clipPath=`polygon(${u})`;let g=x.map(v=>`${v.x},${v.y}`).join(" "),y=v=>`url("data:image/svg+xml,${encodeURIComponent(`<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><polygon points='${g}' fill='none' stroke='black' stroke-width='${v}' vector-effect='non-scaling-stroke' stroke-linejoin='round'/></svg>`)}")`;r.style.setProperty("--qti-shape-outline",y(4)),r.style.setProperty("--qti-shape-outline-bold",y(8))}break;default:console.error(`Unsupported shape: ${o}`);break}}var dh=[O,U,q`
7205
7205
  /* Containing block for the absolutely positioned hotspots over the image. Was on this host in
7206
7206
  the theme, together with a 'display: block' this component now owns. */
7207
7207
  :host {
@@ -7231,14 +7231,14 @@ CES.load();
7231
7231
  top: 0px;
7232
7232
  left: 0px;
7233
7233
  }
7234
- `];var Xi=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Pt=class extends D{static{this.styles=dh}#t;#e;#r;constructor(){super(),this.#e=null,this.#r=null,this._response=[],this.addEventListener("qti-register-hotspot",this.#n)}reset(){this._response=[]}validate(){return this.#o().length>0}set response(t){this._response=this.#i(t)}get response(){return this._response}#i(t){return t==null||t===""?[]:Array.isArray(t)?t:[t]}#o(){return this.#i(this._response)}renderSupplementalLines(){return P}render(){return b`<slot name="prompt"></slot>
7234
+ `];var Yn=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Pt=class extends D{static{this.styles=dh}#t;#e;#r;constructor(){super(),this.#e=null,this.#r=null,this._response=[],this.addEventListener("qti-register-hotspot",this.#o)}reset(){this._response=[]}validate(){return this.#i().length>0}set response(t){this._response=this.#n(t)}get response(){return this._response}#n(t){return t==null||t===""?[]:Array.isArray(t)?t:[t]}#i(){return this.#n(this._response)}renderSupplementalLines(){return P}render(){return b`<slot name="prompt"></slot>
7235
7235
  <line-container>
7236
7236
  <svg
7237
7237
  width=${Ft(this.grImage[0]?.width)}
7238
7238
  height=${Ft(this.grImage[0]?.height)}
7239
7239
  viewbox="0 0 ${this.grImage[0]?.width} ${this.grImage[0]?.height}"
7240
7240
  >
7241
- ${H(this.#o(),t=>t,(t,e)=>vi`
7241
+ ${H(this.#i(),t=>t,(t,e)=>wn`
7242
7242
  <line
7243
7243
  part="line"
7244
7244
  x1=${parseInt(this.querySelector(`[identifier=${t.split(" ")[0]}]`).style.left)}
@@ -7247,11 +7247,11 @@ CES.load();
7247
7247
  y2=${parseInt(this.querySelector(`[identifier=${t.split(" ")[1]}]`).style.top)}
7248
7248
  stroke="red"
7249
7249
  stroke-width="3"
7250
- @click=${r=>{r.stopPropagation(),this._response=this._response.filter((i,o)=>o!==e),this.saveResponse(this.response)}}
7250
+ @click=${r=>{r.stopPropagation(),this._response=this._response.filter((n,i)=>i!==e),this.saveResponse(this.response)}}
7251
7251
  />
7252
7252
  `)}
7253
7253
  ${this.renderSupplementalLines()}
7254
- ${this.#e&&vi`<line
7254
+ ${this.#e&&wn`<line
7255
7255
  part="point"
7256
7256
  x1=${this.startCoord.x}
7257
7257
  y1=${this.startCoord.y}
@@ -7263,7 +7263,7 @@ CES.load();
7263
7263
  </svg>
7264
7264
  <slot></slot>
7265
7265
  </line-container>
7266
- <div role="alert" part="message" id="validation-message"></div>`}#n(t){let e=this.querySelector("img"),r=t.target,i=r.getAttribute("coords"),o=r.getAttribute("shape"),s=i.split(",").map(a=>parseInt(a));Re(o,s,e,r)}firstUpdated(){super.firstUpdated(),this.#t=this.querySelectorAll("qti-associable-hotspot"),this.addEventListener("mousemove",t=>{let e=this.grImage[0];if(!e)return;let r=e.getBoundingClientRect();this.mouseCoord={x:t.clientX-r.left,y:t.clientY-r.top}}),this.#t.forEach(t=>{t.style.left=t.getAttribute("coords").split(",")[0]+"px",t.style.top=t.getAttribute("coords").split(",")[1]+"px",t.addEventListener("click",e=>{this.#e?this.#r||(this.#r=e.target,this._response=this.#o(),this._response=[...this._response,`${this.#e.getAttribute("identifier")} ${this.#r.getAttribute("identifier")}`],this.saveResponse(this.response),this.#e=null,this.#r=null):(this.#e=e.target,this.startCoord={x:parseInt(this.#e.getAttribute("coords").split(",")[0]),y:parseInt(this.#e.getAttribute("coords").split(",")[1])})})})}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.#n)}};Xi([_()],Pt.prototype,"startCoord",void 0);Xi([_()],Pt.prototype,"mouseCoord",void 0);Xi([dl({selector:"img"})],Pt.prototype,"grImage",void 0);Xi([_()],Pt.prototype,"_response",void 0);Xi([p({attribute:"response",reflect:!1,noAccessor:!0,converter:zt({emptyAs:[]})})],Pt.prototype,"response",null);var Dn=[{tag:"qti-graphic-associate-interaction",ctor:Pt}];var hh=[O,U,q`
7266
+ <div role="alert" part="message" id="validation-message"></div>`}#o(t){let e=this.querySelector("img"),r=t.target,n=r.getAttribute("coords"),i=r.getAttribute("shape"),s=n.split(",").map(a=>parseInt(a));Re(i,s,e,r)}firstUpdated(){super.firstUpdated(),this.#t=this.querySelectorAll("qti-associable-hotspot"),this.addEventListener("mousemove",t=>{let e=this.grImage[0];if(!e)return;let r=e.getBoundingClientRect();this.mouseCoord={x:t.clientX-r.left,y:t.clientY-r.top}}),this.#t.forEach(t=>{t.style.left=t.getAttribute("coords").split(",")[0]+"px",t.style.top=t.getAttribute("coords").split(",")[1]+"px",t.addEventListener("click",e=>{this.#e?this.#r||(this.#r=e.target,this._response=this.#i(),this._response=[...this._response,`${this.#e.getAttribute("identifier")} ${this.#r.getAttribute("identifier")}`],this.saveResponse(this.response),this.#e=null,this.#r=null):(this.#e=e.target,this.startCoord={x:parseInt(this.#e.getAttribute("coords").split(",")[0]),y:parseInt(this.#e.getAttribute("coords").split(",")[1])})})})}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.#o)}};Yn([_()],Pt.prototype,"startCoord",void 0);Yn([_()],Pt.prototype,"mouseCoord",void 0);Yn([dl({selector:"img"})],Pt.prototype,"grImage",void 0);Yn([_()],Pt.prototype,"_response",void 0);Yn([p({attribute:"response",reflect:!1,noAccessor:!0,converter:zt({emptyAs:[]})})],Pt.prototype,"response",null);var Do=[{tag:"qti-graphic-associate-interaction",ctor:Pt}];var hh=[O,U,q`
7267
7267
  :host {
7268
7268
  display: flex;
7269
7269
  align-items: flex-start;
@@ -7320,10 +7320,10 @@ CES.load();
7320
7320
  user-select: none;
7321
7321
  pointer-events: none;
7322
7322
  }
7323
- `];var Du=Rt(D,"qti-gap-img, qti-gap-text","qti-associable-hotspot","slot[part~='drags']"),zr=class extends Ot(Du,'[qti-draggable="true"]'){static{this.styles=hh}render(){return b` <slot name="prompt"></slot>
7323
+ `];var Mu=Rt(D,"qti-gap-img, qti-gap-text","qti-associable-hotspot","slot[part~='drags']"),zr=class extends Ot(Mu,'[qti-draggable="true"]'){static{this.styles=hh}render(){return b` <slot name="prompt"></slot>
7324
7324
  <slot part="image"></slot>
7325
7325
  <slot part="drags" name="drags" class="hover-border"></slot>
7326
- <div role="alert" part="message" id="validation-message"></div>`}shouldReturnToInventoryOnInventoryDrop(){return!0}#t(t){let e=t.target,r=e.getAttribute("coords"),i=e.getAttribute("shape"),o=r.split(",").map(s=>parseInt(s));switch(i){case"circle":{let[s,a,l]=o;e.style.left=s-l+"px",e.style.top=a-l+"px",e.style.width=e.style.height=2*l+"px"}break;case"rect":{let[s,a,l,c]=o;e.style.left=s+"px",e.style.top=a+"px",e.style.width=l-s+"px",e.style.height=c-a+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.#t)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.#t)}};var Nn=[{tag:"qti-graphic-gap-match-interaction",ctor:zr}];var ph=[O,U,q`
7326
+ <div role="alert" part="message" id="validation-message"></div>`}shouldReturnToInventoryOnInventoryDrop(){return!0}#t(t){let e=t.target,r=e.getAttribute("coords"),n=e.getAttribute("shape"),i=r.split(",").map(s=>parseInt(s));switch(n){case"circle":{let[s,a,l]=i;e.style.left=s-l+"px",e.style.top=a-l+"px",e.style.width=e.style.height=2*l+"px"}break;case"rect":{let[s,a,l,c]=i;e.style.left=s+"px",e.style.top=a+"px",e.style.width=l-s+"px",e.style.height=c-a+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.#t)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.#t)}};var No=[{tag:"qti-graphic-gap-match-interaction",ctor:zr}];var ph=[O,U,q`
7327
7327
  /* The order pins are anchored outside their hotspot's box. */
7328
7328
  :host {
7329
7329
  /* The box this element already had. See the note in qti-match-interaction.styles.ts. */
@@ -7361,11 +7361,11 @@ CES.load();
7361
7361
  pointer-events: none;
7362
7362
  user-select: none;
7363
7363
  }
7364
- `];var jr=class n extends _e(D,"qti-hotspot-choice"){constructor(){super(...arguments),this._choiceElements=[]}static{this.styles=ph}static#t="cito-graphic-order-marker";render(){return b`
7364
+ `];var jr=class o extends _e(D,"qti-hotspot-choice"){constructor(){super(...arguments),this._choiceElements=[]}static{this.styles=ph}static#t="cito-graphic-order-marker";render(){return b`
7365
7365
  <slot name="prompt"></slot>
7366
7366
  <slot></slot>
7367
7367
  <div role="alert" part="message" id="validation-message"></div>
7368
- `}#e(t){let{identifier:e}=t.detail,r=this._choiceElements.find(o=>o.getAttribute("identifier")===e);if(!r)return;let i=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){let o=this._choiceElements.filter(s=>s.order!=null).length;if(o>=i){this.choiceOrdering=!1;return}r.order=o+1}else{let o=r.order;r.order=null,this._choiceElements.forEach(s=>{s.order!=null&&s.order>o&&s.order--})}this.refreshLocatorPins(),this.choiceOrdering=!1}}#r(t){return`--qti-graphic-order-${(t.identifier||t.getAttribute("identifier")||"hotspot").toLowerCase().replace(/[^a-z0-9_-]/g,"-")}`}resolvePinColor(t){return"var(--qti-selected-bg)"}refreshLocatorPins(){this.querySelectorAll(`.${n.#t}`).forEach(e=>e.remove()),this._choiceElements.forEach(e=>{e.style.removeProperty("anchor-name")}),this._choiceElements.filter(e=>e.order!=null).sort((e,r)=>e.order-r.order).forEach(e=>{let r=this.#r(e);e.style.setProperty("anchor-name",r);let i=document.createElement("span");i.className=n.#t,i.style.setProperty("position-anchor",r),i.style.setProperty("--qti-graphic-order-pin-color",this.resolvePinColor(e)),e.getAttribute("shape")==="poly"&&i.classList.add("cito-graphic-order-marker--poly"),i.setAttribute("aria-hidden","true"),i.textContent=String(e.order),this.append(i)})}#i(t){let e=this.querySelector("img"),r=t.target,i=r.getAttribute("coords"),o=r.getAttribute("shape"),s=i.split(",").map(a=>parseInt(a));Re(o,s,e,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("activate-qti-hotspot-choice",this.#e),this.addEventListener("register-qti-hotspot-choice",this.#i),this.refreshLocatorPins()}disconnectedCallback(){this.querySelectorAll(`.${n.#t}`).forEach(t=>t.remove()),super.disconnectedCallback(),this.removeEventListener("activate-qti-hotspot-choice",this.#e),this.removeEventListener("register-qti-hotspot-choice",this.#i)}};var $n=[{tag:"qti-graphic-order-interaction",ctor:jr}];var uh=[O,U,q`
7368
+ `}#e(t){let{identifier:e}=t.detail,r=this._choiceElements.find(i=>i.getAttribute("identifier")===e);if(!r)return;let n=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){let i=this._choiceElements.filter(s=>s.order!=null).length;if(i>=n){this.choiceOrdering=!1;return}r.order=i+1}else{let i=r.order;r.order=null,this._choiceElements.forEach(s=>{s.order!=null&&s.order>i&&s.order--})}this.refreshLocatorPins(),this.choiceOrdering=!1}}#r(t){return`--qti-graphic-order-${(t.identifier||t.getAttribute("identifier")||"hotspot").toLowerCase().replace(/[^a-z0-9_-]/g,"-")}`}resolvePinColor(t){return"var(--qti-selected-bg)"}refreshLocatorPins(){this.querySelectorAll(`.${o.#t}`).forEach(e=>e.remove()),this._choiceElements.forEach(e=>{e.style.removeProperty("anchor-name")}),this._choiceElements.filter(e=>e.order!=null).sort((e,r)=>e.order-r.order).forEach(e=>{let r=this.#r(e);e.style.setProperty("anchor-name",r);let n=document.createElement("span");n.className=o.#t,n.style.setProperty("position-anchor",r),n.style.setProperty("--qti-graphic-order-pin-color",this.resolvePinColor(e)),e.getAttribute("shape")==="poly"&&n.classList.add("cito-graphic-order-marker--poly"),n.setAttribute("aria-hidden","true"),n.textContent=String(e.order),this.append(n)})}#n(t){let e=this.querySelector("img"),r=t.target,n=r.getAttribute("coords"),i=r.getAttribute("shape"),s=n.split(",").map(a=>parseInt(a));Re(i,s,e,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("activate-qti-hotspot-choice",this.#e),this.addEventListener("register-qti-hotspot-choice",this.#n),this.refreshLocatorPins()}disconnectedCallback(){this.querySelectorAll(`.${o.#t}`).forEach(t=>t.remove()),super.disconnectedCallback(),this.removeEventListener("activate-qti-hotspot-choice",this.#e),this.removeEventListener("register-qti-hotspot-choice",this.#n)}};var $o=[{tag:"qti-graphic-order-interaction",ctor:jr}];var uh=[O,U,q`
7369
7369
  :host {
7370
7370
  display: block;
7371
7371
  }
@@ -7418,13 +7418,13 @@ CES.load();
7418
7418
  <slot name="prompt"></slot>
7419
7419
  <slot></slot>
7420
7420
  <div part="message" role="alert" id="validation-message"></div>
7421
- `}#t=null;#e(t){return this.#t||(t.naturalWidth>0&&t.naturalHeight>0?this.#t=Promise.resolve(t):this.#t=new Promise(e=>{let r=()=>{t.removeEventListener("load",r),e(t)};t.addEventListener("load",r)})),this.#t}async#r(t){let e=this.querySelector("img"),r=t.target,i=r.getAttribute("coords"),o=r.getAttribute("shape"),s=i.split(",").map(l=>parseInt(l)),a=await this.#e(e);Re(o,s,a,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("register-qti-hotspot-choice",this.#r)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("unregister-qti-hotspot-choice",this.#r)}};var Ln=[{tag:"qti-hotspot-interaction",ctor:Fr}];var mh=[O,U,q`
7421
+ `}#t=null;#e(t){return this.#t||(t.naturalWidth>0&&t.naturalHeight>0?this.#t=Promise.resolve(t):this.#t=new Promise(e=>{let r=()=>{t.removeEventListener("load",r),e(t)};t.addEventListener("load",r)})),this.#t}async#r(t){let e=this.querySelector("img"),r=t.target,n=r.getAttribute("coords"),i=r.getAttribute("shape"),s=n.split(",").map(l=>parseInt(l)),a=await this.#e(e);Re(i,s,a,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("register-qti-hotspot-choice",this.#r)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("unregister-qti-hotspot-choice",this.#r)}};var Lo=[{tag:"qti-hotspot-interaction",ctor:Fr}];var mh=[O,U,q`
7422
7422
  /* The box this element already had. See the note in qti-match-interaction.styles.ts. */
7423
7423
  :host {
7424
7424
  display: block;
7425
7425
  }
7426
7426
  `];var Br=class extends _e(D,"qti-hottext"){constructor(){super(...arguments),this.render=()=>b`<slot></slot>
7427
- <div part="message" role="alert" id="validation-message"></div>`}static{this.styles=mh}};var Vn=[{tag:"qti-hottext-interaction",ctor:Br}];var nc=(n,t="[part='menu']",e="[part='trigger']",r="--qti-inline-choice-width")=>{class i extends n{#t=null;#e=null;#r=null;#i=0;#o=null;shouldAutoSizeMenu(){return!1}menuAutoSizeExtraWidth(){return 0}menuAutoSizePropertyTarget(){return this.renderRoot?.querySelector(e)??null}menuAutoSizeRows(){let s=this.renderRoot?.querySelector(t);return s?Array.from(s.children).flatMap(a=>a instanceof HTMLSlotElement?a.assignedElements().filter(l=>l instanceof HTMLElement):a instanceof HTMLElement?[a]:[]):[]}withMenuMeasurable(s){let a=this.renderRoot?.querySelector(t);if(!a)return s();let l=a.matches(":popover-open"),c=a.style.visibility,d=a.style.display;l||(a.style.visibility="hidden",a.style.display="block",a.showPopover?.());try{return s()}finally{l||(a.hidePopover?.(),a.style.visibility=c,a.style.display=d)}}updateMenuWidth(){if(!this.isConnected||!this.shouldAutoSizeMenu())return;let s=this.menuAutoSizePropertyTarget();if(!s)return;let a=this.renderRoot?.querySelector(t);a&&this.#c(a),this.#s();let l=this.#n()+this.menuAutoSizeExtraWidth();l<=0||l===this.#o||(this.#o=l,s.style.setProperty(r,`${l}px`))}#n(){return this.withMenuMeasurable(()=>{let s=0;for(let c of this.menuAutoSizeRows()){let d=c.style.width;c.style.width="max-content",s=Math.max(s,c.getBoundingClientRect().width),c.style.width=d}if(s<=0)return 0;let a=this.renderRoot?.querySelector(t);if(!a)return s;let l=getComputedStyle(a);return s+parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)+parseFloat(l.borderLeftWidth)+parseFloat(l.borderRightWidth)})}#s(){typeof MutationObserver>"u"||this.#r||(this.#r=new MutationObserver(()=>this.#a()),this.#r.observe(this,{childList:!0,subtree:!0,characterData:!0}))}#a(){this.#i||(this.#i=requestAnimationFrame(()=>{this.#i=0,this.updateMenuWidth()}))}#c(s){typeof ResizeObserver>"u"||this.#e===s||(this.#t??=new ResizeObserver(()=>{this.#e?.matches(":popover-open")&&this.#a()}),this.#e&&this.#t.unobserve(this.#e),this.#t.observe(s),this.#e=s)}disconnectedCallback(){this.#t?.disconnect(),this.#t=null,this.#e=null,this.#r?.disconnect(),this.#r=null,this.#i&&cancelAnimationFrame(this.#i),this.#i=0,super.disconnectedCallback()}}return i};var Nu=q`
7427
+ <div part="message" role="alert" id="validation-message"></div>`}static{this.styles=mh}};var Vo=[{tag:"qti-hottext-interaction",ctor:Br}];var oc=(o,t="[part='menu']",e="[part='trigger']",r="--qti-inline-choice-width")=>{class n extends o{#t=null;#e=null;#r=null;#n=0;#i=null;shouldAutoSizeMenu(){return!1}menuAutoSizeExtraWidth(){return 0}menuAutoSizePropertyTarget(){return this.renderRoot?.querySelector(e)??null}menuAutoSizeRows(){let s=this.renderRoot?.querySelector(t);return s?Array.from(s.children).flatMap(a=>a instanceof HTMLSlotElement?a.assignedElements().filter(l=>l instanceof HTMLElement):a instanceof HTMLElement?[a]:[]):[]}withMenuMeasurable(s){let a=this.renderRoot?.querySelector(t);if(!a)return s();let l=a.matches(":popover-open"),c=a.style.visibility,d=a.style.display;l||(a.style.visibility="hidden",a.style.display="block",a.showPopover?.());try{return s()}finally{l||(a.hidePopover?.(),a.style.visibility=c,a.style.display=d)}}updateMenuWidth(){if(!this.isConnected||!this.shouldAutoSizeMenu())return;let s=this.menuAutoSizePropertyTarget();if(!s)return;let a=this.renderRoot?.querySelector(t);a&&this.#c(a),this.#s();let l=this.#o()+this.menuAutoSizeExtraWidth();l<=0||l===this.#i||(this.#i=l,s.style.setProperty(r,`${l}px`))}#o(){return this.withMenuMeasurable(()=>{let s=0;for(let c of this.menuAutoSizeRows()){let d=c.style.width;c.style.width="max-content",s=Math.max(s,c.getBoundingClientRect().width),c.style.width=d}if(s<=0)return 0;let a=this.renderRoot?.querySelector(t);if(!a)return s;let l=getComputedStyle(a);return s+parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)+parseFloat(l.borderLeftWidth)+parseFloat(l.borderRightWidth)})}#s(){typeof MutationObserver>"u"||this.#r||(this.#r=new MutationObserver(()=>this.#a()),this.#r.observe(this,{childList:!0,subtree:!0,characterData:!0}))}#a(){this.#n||(this.#n=requestAnimationFrame(()=>{this.#n=0,this.updateMenuWidth()}))}#c(s){typeof ResizeObserver>"u"||this.#e===s||(this.#t??=new ResizeObserver(()=>{this.#e?.matches(":popover-open")&&this.#a()}),this.#e&&this.#t.unobserve(this.#e),this.#t.observe(s),this.#e=s)}disconnectedCallback(){this.#t?.disconnect(),this.#t=null,this.#e=null,this.#r?.disconnect(),this.#r=null,this.#n&&cancelAnimationFrame(this.#n),this.#n=0,super.disconnectedCallback()}}return n};var Du=q`
7428
7428
  /* ── Host ──────────────────────────────────────────────────────────────────
7429
7429
  Inline-block so the element flows with surrounding text.
7430
7430
  --qti-inline-choice-width is the single width control surface:
@@ -7605,12 +7605,12 @@ CES.load();
7605
7605
  z-index: var(--qti-overlay-z-index);
7606
7606
  white-space: nowrap;
7607
7607
  }
7608
- `,$u=Nu,fh=$u;var ae=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Lu=0,tt=class extends nc(D){constructor(){super(),this.options=[],this._dropdownOpen=!1,this._slotObserver=null,this._menuId=`qti-inline-choice-menu-${Lu++}`,this._handleDataPromptChange=()=>{this.#e()},this.required=!1,this.minChoices=0,this._handleRequiredChange=()=>{this.validate(),this.reportValidity()},this._pendingResponse=void 0,this.#o=t=>{(this.disabled||this.readonly)&&t.preventDefault()},this.#n=t=>{this.disabled||this.readonly||(t.key==="ArrowDown"||t.key==="Enter"||t.key===" ")&&(t.preventDefault(),this.#i(!0))},this.#s=t=>{let r=t.newState==="open";this._dropdownOpen!==r&&(this._dropdownOpen=r),r?this._internals.states.add("open"):this._internals.states.delete("open")},this.#a=t=>{if(!this._dropdownOpen)return;if(t.key==="Escape"){t.preventDefault(),this.#i(!1),this.#c();return}let e=this.#y(),r=this.renderRoot.activeElement,i=this.#h(),o=r||(i instanceof HTMLElement&&this.#l(i)?i:null),s=e.findIndex(a=>a===o);if(t.key==="ArrowDown"&&(t.preventDefault(),e[Math.min(e.length-1,Math.max(0,s+1))]?.focus()),t.key==="ArrowUp"&&(t.preventDefault(),e[Math.max(0,s-1)]?.focus()),t.key==="Enter"||t.key===" "){if(!o)return;if(t.preventDefault(),o instanceof HTMLButtonElement)o.click();else{let a=o.getAttribute("identifier")??"";this.#r(a)}}},this.#p=()=>{this.#e()},this.#m=t=>{if(this.disabled||this.readonly)return;let r=t.currentTarget.getAttribute("identifier")??"";this.#r(r)},this.internals.role="listbox"}get isInline(){return!0}static get styles(){return[fh]}renderTrigger(){let t=this.#t();return b`
7608
+ `,Nu=Du,fh=Nu;var ae=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},$u=0,tt=class extends oc(D){constructor(){super(),this.options=[],this._dropdownOpen=!1,this._slotObserver=null,this._menuId=`qti-inline-choice-menu-${$u++}`,this._handleDataPromptChange=()=>{this.#e()},this.required=!1,this.minChoices=0,this._handleRequiredChange=()=>{this.validate(),this.reportValidity()},this._pendingResponse=void 0,this.#i=t=>{(this.disabled||this.readonly)&&t.preventDefault()},this.#o=t=>{this.disabled||this.readonly||(t.key==="ArrowDown"||t.key==="Enter"||t.key===" ")&&(t.preventDefault(),this.#n(!0))},this.#s=t=>{let r=t.newState==="open";this._dropdownOpen!==r&&(this._dropdownOpen=r),r?this._internals.states.add("open"):this._internals.states.delete("open")},this.#a=t=>{if(!this._dropdownOpen)return;if(t.key==="Escape"){t.preventDefault(),this.#n(!1),this.#c();return}let e=this.#y(),r=this.renderRoot.activeElement,n=this.#h(),i=r||(n instanceof HTMLElement&&this.#l(n)?n:null),s=e.findIndex(a=>a===i);if(t.key==="ArrowDown"&&(t.preventDefault(),e[Math.min(e.length-1,Math.max(0,s+1))]?.focus()),t.key==="ArrowUp"&&(t.preventDefault(),e[Math.max(0,s-1)]?.focus()),t.key==="Enter"||t.key===" "){if(!i)return;if(t.preventDefault(),i instanceof HTMLButtonElement)i.click();else{let a=i.getAttribute("identifier")??"";this.#r(a)}}},this.#p=()=>{this.#e()},this.#m=t=>{if(this.disabled||this.readonly)return;let r=t.currentTarget.getAttribute("identifier")??"";this.#r(r)},this.internals.role="listbox"}get isInline(){return!0}static get styles(){return[fh]}renderTrigger(){let t=this.#t();return b`
7609
7609
  <button
7610
7610
  part="trigger"
7611
7611
  type="button"
7612
- @click=${this.#o}
7613
- @keydown=${this.#n}
7612
+ @click=${this.#i}
7613
+ @keydown=${this.#o}
7614
7614
  aria-haspopup="listbox"
7615
7615
  aria-expanded="${this._dropdownOpen?"true":"false"}"
7616
7616
  aria-controls="${this._menuId}"
@@ -7645,7 +7645,7 @@ CES.load();
7645
7645
  </button>
7646
7646
  <slot @slotchange=${this.#p}></slot>
7647
7647
  </div>
7648
- `}renderValidationMessage(){return b`<div id="validation-message" part="message" role="alert" style="display:none;"></div>`}render(){return b` ${this.renderTrigger()} ${this.renderMenu()} ${this.renderValidationMessage()} `}async connectedCallback(){super.connectedCallback(),this.#e(),this.#d(),await this.updateComplete,this.isConnected&&this.updateMenuWidth()}disconnectedCallback(){super.disconnectedCallback(),this.#b(),this._slotObserver?.disconnect(),this._slotObserver=null}willUpdate(t){t.has("configContext")&&this.#e()}updated(t){t.has("_dropdownOpen")&&this._dropdownOpen&&(this.#f(),this.#y()[0]?.focus()),(t.has("disabled")||t.has("readonly"))&&this.#f()}#t(){return this.options.find(t=>t.selected)??this.options[0]}#e(){let t=Array.from(this.querySelectorAll("qti-inline-choice")),e=this.dataPrompt||this.configContext?.inlineChoicePrompt||"select",r=this._pendingResponse,i=r!==void 0?r??"":this.options.find(a=>a.selected)?.value??"",o=[{content:e,value:"",selected:i===""},...t.map(a=>{let l=a.getAttribute("identifier")??"";return{content:Array.from(a.childNodes).map(c=>c.cloneNode(!0)),value:l,selected:l!==""&&l===i}})],s=o.some(a=>a.selected);this.options=s?o:o.map((a,l)=>({...a,selected:l===0})),this._pendingResponse=void 0,this.#f(),this.updateMenuWidth()}shouldAutoSizeMenu(){return this.configContext?.inlineChoiceAutosize?!Array.from(this.classList).some(t=>t.startsWith("qti-input-width-")):!1}menuAutoSizeExtraWidth(){return this.renderRoot.querySelector('span[part~="dropdown-icon"]')?.offsetWidth??0}validate(){let t=this.options.find(s=>s.selected),e=t?t.value!=="":!1,r=this.required||this.minChoices>=1,i=e||!r,o=this.dataset.minChoicesMessage||"Please select an option.";return this.setInteractionValidity(i,i?"":o,this,{suppressInline:!0}),i}reportValidity(){return super.reportValidity()}reset(){this.#i(!1),this.options=this.options.map((t,e)=>({...t,selected:e===0})),this.#f()}set response(t){let e=t??"";if(this.options.length===0){this._pendingResponse=t;return}this.options=this.options.map(r=>({...r,selected:r.value===e})),this.#f()}get response(){let t=this.options.find(e=>e.selected)?.value??"";return t===""?null:t}#r(t){this.options=this.options.map(e=>({...e,selected:e.value===t})),this.#f(),this.validate(),this.reportValidity(),this.saveResponse(t),this.#i(!1)}#i(t){let e=this.#u();if(e){if(t){e.matches(":popover-open")||e.showPopover();return}e.matches(":popover-open")&&e.hidePopover()}}#o;#n;#s;#a;#c(){this.renderRoot.querySelector('button[part="trigger"]')?.focus()}#h(){let t=document.activeElement;for(;t&&t instanceof HTMLElement&&t.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}#l(t){return t===this||this.contains(t)||this.renderRoot.contains(t)}#u(){return this.renderRoot.querySelector(`#${this._menuId}`)}#d(){this._slotObserver=new MutationObserver(()=>this.#e()),this._slotObserver.observe(this,{childList:!0,subtree:!0})}#p;#m;#b(){let t=Array.from(this.querySelectorAll("qti-inline-choice"));for(let e of t)e.removeEventListener("click",this.#m),e.removeAttribute("tabindex"),e.internals.role=null,e.internals.ariaSelected=null,e.internals.ariaChecked="false",e.internals.states.delete("checked")}async#f(){await this.updateComplete;let t=this.options.find(r=>r.selected)?.value??"",e=Array.from(this.querySelectorAll("qti-inline-choice"));for(let r of e){let o=(r.getAttribute("identifier")??"")===t;r.removeEventListener("click",this.#m),r.addEventListener("click",this.#m),r.disabled=this.disabled,r.readonly=this.readonly,r.internals.role="option",r.internals.ariaSelected=o?"true":"false",r.internals.ariaChecked=o?"true":"false",r.internals.ariaDisabled=this.disabled?"true":"false",r.internals.ariaReadOnly=this.readonly?"true":"false",o?r.internals.states.add("checked"):r.internals.states.delete("checked"),r.tabIndex=-1}}#y(){let t=this.renderRoot.querySelector('button[part~="option"]'),e=Array.from(this.querySelectorAll("qti-inline-choice"));return[...t?[t]:[],...e]}};ae([_()],tt.prototype,"options",void 0);ae([_()],tt.prototype,"_dropdownOpen",void 0);ae([T({context:pt,subscribe:!0}),p({attribute:!1})],tt.prototype,"configContext",void 0);ae([p({type:String,attribute:"data-prompt"})],tt.prototype,"dataPrompt",void 0);ae([$("dataPrompt",{waitUntilFirstUpdate:!0})],tt.prototype,"_handleDataPromptChange",void 0);ae([p({type:Boolean,reflect:!0,converter:{fromAttribute:n=>n==="true"||n==="",toAttribute:n=>n?"true":null}})],tt.prototype,"required",void 0);ae([p({type:Number,attribute:"min-choices"})],tt.prototype,"minChoices",void 0);ae([$(["required","minChoices"],{waitUntilFirstUpdate:!0})],tt.prototype,"_handleRequiredChange",void 0);ae([p({attribute:"response",reflect:!1,noAccessor:!0})],tt.prototype,"response",null);var zn=[{tag:"qti-inline-choice-interaction",ctor:tt}];var gh=[O,U,q`
7648
+ `}renderValidationMessage(){return b`<div id="validation-message" part="message" role="alert" style="display:none;"></div>`}render(){return b` ${this.renderTrigger()} ${this.renderMenu()} ${this.renderValidationMessage()} `}async connectedCallback(){super.connectedCallback(),this.#e(),this.#d(),await this.updateComplete,this.isConnected&&this.updateMenuWidth()}disconnectedCallback(){super.disconnectedCallback(),this.#b(),this._slotObserver?.disconnect(),this._slotObserver=null}willUpdate(t){t.has("configContext")&&this.#e()}updated(t){t.has("_dropdownOpen")&&this._dropdownOpen&&(this.#f(),this.#y()[0]?.focus()),(t.has("disabled")||t.has("readonly"))&&this.#f()}#t(){return this.options.find(t=>t.selected)??this.options[0]}#e(){let t=Array.from(this.querySelectorAll("qti-inline-choice")),e=this.dataPrompt||this.configContext?.inlineChoicePrompt||"select",r=this._pendingResponse,n=r!==void 0?r??"":this.options.find(a=>a.selected)?.value??"",i=[{content:e,value:"",selected:n===""},...t.map(a=>{let l=a.getAttribute("identifier")??"";return{content:Array.from(a.childNodes).map(c=>c.cloneNode(!0)),value:l,selected:l!==""&&l===n}})],s=i.some(a=>a.selected);this.options=s?i:i.map((a,l)=>({...a,selected:l===0})),this._pendingResponse=void 0,this.#f(),this.updateMenuWidth()}shouldAutoSizeMenu(){return this.configContext?.inlineChoiceAutosize?!Array.from(this.classList).some(t=>t.startsWith("qti-input-width-")):!1}menuAutoSizeExtraWidth(){return this.renderRoot.querySelector('span[part~="dropdown-icon"]')?.offsetWidth??0}validate(){let t=this.options.find(s=>s.selected),e=t?t.value!=="":!1,r=this.required||this.minChoices>=1,n=e||!r,i=this.dataset.minChoicesMessage||"Please select an option.";return this.setInteractionValidity(n,n?"":i,this,{suppressInline:!0}),n}reportValidity(){return super.reportValidity()}reset(){this.#n(!1),this.options=this.options.map((t,e)=>({...t,selected:e===0})),this.#f()}set response(t){let e=t??"";if(this.options.length===0){this._pendingResponse=t;return}this.options=this.options.map(r=>({...r,selected:r.value===e})),this.#f()}get response(){let t=this.options.find(e=>e.selected)?.value??"";return t===""?null:t}#r(t){this.options=this.options.map(e=>({...e,selected:e.value===t})),this.#f(),this.validate(),this.reportValidity(),this.saveResponse(t),this.#n(!1)}#n(t){let e=this.#u();if(e){if(t){e.matches(":popover-open")||e.showPopover();return}e.matches(":popover-open")&&e.hidePopover()}}#i;#o;#s;#a;#c(){this.renderRoot.querySelector('button[part="trigger"]')?.focus()}#h(){let t=document.activeElement;for(;t&&t instanceof HTMLElement&&t.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}#l(t){return t===this||this.contains(t)||this.renderRoot.contains(t)}#u(){return this.renderRoot.querySelector(`#${this._menuId}`)}#d(){this._slotObserver=new MutationObserver(()=>this.#e()),this._slotObserver.observe(this,{childList:!0,subtree:!0})}#p;#m;#b(){let t=Array.from(this.querySelectorAll("qti-inline-choice"));for(let e of t)e.removeEventListener("click",this.#m),e.removeAttribute("tabindex"),e.internals.role=null,e.internals.ariaSelected=null,e.internals.ariaChecked="false",e.internals.states.delete("checked")}async#f(){await this.updateComplete;let t=this.options.find(r=>r.selected)?.value??"",e=Array.from(this.querySelectorAll("qti-inline-choice"));for(let r of e){let i=(r.getAttribute("identifier")??"")===t;r.removeEventListener("click",this.#m),r.addEventListener("click",this.#m),r.disabled=this.disabled,r.readonly=this.readonly,r.internals.role="option",r.internals.ariaSelected=i?"true":"false",r.internals.ariaChecked=i?"true":"false",r.internals.ariaDisabled=this.disabled?"true":"false",r.internals.ariaReadOnly=this.readonly?"true":"false",i?r.internals.states.add("checked"):r.internals.states.delete("checked"),r.tabIndex=-1}}#y(){let t=this.renderRoot.querySelector('button[part~="option"]'),e=Array.from(this.querySelectorAll("qti-inline-choice"));return[...t?[t]:[],...e]}};ae([_()],tt.prototype,"options",void 0);ae([_()],tt.prototype,"_dropdownOpen",void 0);ae([T({context:pt,subscribe:!0}),p({attribute:!1})],tt.prototype,"configContext",void 0);ae([p({type:String,attribute:"data-prompt"})],tt.prototype,"dataPrompt",void 0);ae([$("dataPrompt",{waitUntilFirstUpdate:!0})],tt.prototype,"_handleDataPromptChange",void 0);ae([p({type:Boolean,reflect:!0,converter:{fromAttribute:o=>o==="true"||o==="",toAttribute:o=>o?"true":null}})],tt.prototype,"required",void 0);ae([p({type:Number,attribute:"min-choices"})],tt.prototype,"minChoices",void 0);ae([$(["required","minChoices"],{waitUntilFirstUpdate:!0})],tt.prototype,"_handleRequiredChange",void 0);ae([p({attribute:"response",reflect:!1,noAccessor:!0})],tt.prototype,"response",null);var zo=[{tag:"qti-inline-choice-interaction",ctor:tt}];var gh=[O,U,q`
7649
7649
  /*
7650
7650
  * A custom element is inline unless it says otherwise, and this one never did. Its shadow content
7651
7651
  * is block-level, so block-in-inline generated the anonymous block boxes and it looked correct —
@@ -7807,7 +7807,7 @@ CES.load();
7807
7807
  justify-content: center;
7808
7808
  flex-shrink: 0;
7809
7809
  }
7810
- `];var sc=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ce=class extends Ot(Rt(D,"qti-simple-match-set:first-of-type qti-simple-associable-choice, qti-simple-match-set:last-of-type > qti-simple-associable-choice > qti-simple-associable-choice","qti-simple-match-set:last-of-type > qti-simple-associable-choice","qti-simple-match-set:first-of-type"),'[qti-draggable="true"]'){constructor(){super(...arguments),this.autoSizeDropzones=!1,this.lastCheckedRadio=null,this.class="",this._response=[],this.responseIdentifier="",this.handleRadioClick=t=>{let e=t.target;this.lastCheckedRadio===e?(e.checked=!1,this.lastCheckedRadio=null,this.handleRadioChange(t)):this.lastCheckedRadio=e},this.handleRadioChange=t=>{let e=t.target,r=e.value,i=e.name,o=e.type;e.checked?(this.response?this.response.indexOf(r)===-1&&(o==="radio"&&(this.response=(this.response||[]).filter(s=>s.indexOf(i)===-1)),this.response=[...this.response,r]):this.response=[r],this.lastCheckedRadio=e):(this.response=(this.response||[]).filter(s=>s!==r),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}}))}}static{this.styles=[gh,bh]}get response(){return this.classList.contains("qti-match-tabular")?this._response:super.response}set response(t){this.classList.contains("qti-match-tabular")?this._response=t:super.response=t}isDragDropEnabled(){return!this.classList.contains("qti-match-tabular")}initiateDrag(...t){this.classList.contains("qti-match-tabular")||super.initiateDrag(...t)}afterCache(){this.classList.contains("qti-match-tabular")||super.afterCache()}async connectedCallback(){super.connectedCallback(),this.sourceChoices=Array.from(this.querySelectorAll("qti-simple-match-set:first-of-type qti-simple-associable-choice")),this.targetChoices=Array.from(this.querySelectorAll("qti-simple-match-set:last-of-type qti-simple-associable-choice")),this.syncTabularSlotting()}willUpdate(t){super.willUpdate?.(t),t.has("class")&&this.syncTabularSlotting()}syncTabularSlotting(){let t=this.classList.contains("qti-match-tabular"),e=this.querySelectorAll(":scope > qti-simple-match-set"),r=e[0],i=e[1],o=s=>{s.style.removeProperty("min-width"),s.style.removeProperty("min-height"),s.style.removeProperty("--qti-dropzone-min-height")};t?(r?.setAttribute("slot","match-rows"),i?.setAttribute("slot","match-cols"),this.sourceChoices?.forEach(s=>{o(s),s.setAttribute("role","rowheader")}),this.targetChoices?.forEach(s=>{o(s),s.setAttribute("role","columnheader")})):(r?.removeAttribute("slot"),i?.removeAttribute("slot"),this.sourceChoices?.forEach(s=>s.removeAttribute("role")),this.targetChoices?.forEach(s=>s.removeAttribute("role")))}validate(){return this.class.split(" ").includes("qti-match-tabular")?this.response?.length===this.sourceChoices.length:super.validate()}getCellStateVariant(t,e){return""}render(){let t=this.class.split(" ").includes("qti-match-tabular");return b`
7810
+ `];var sc=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ce=class extends Ot(Rt(D,"qti-simple-match-set:first-of-type qti-simple-associable-choice, qti-simple-match-set:last-of-type > qti-simple-associable-choice > qti-simple-associable-choice","qti-simple-match-set:last-of-type > qti-simple-associable-choice","qti-simple-match-set:first-of-type"),'[qti-draggable="true"]'){constructor(){super(...arguments),this.autoSizeDropzones=!1,this.lastCheckedRadio=null,this.class="",this._response=[],this.responseIdentifier="",this.handleRadioClick=t=>{let e=t.target;this.lastCheckedRadio===e?(e.checked=!1,this.lastCheckedRadio=null,this.handleRadioChange(t)):this.lastCheckedRadio=e},this.handleRadioChange=t=>{let e=t.target,r=e.value,n=e.name,i=e.type;e.checked?(this.response?this.response.indexOf(r)===-1&&(i==="radio"&&(this.response=(this.response||[]).filter(s=>s.indexOf(n)===-1)),this.response=[...this.response,r]):this.response=[r],this.lastCheckedRadio=e):(this.response=(this.response||[]).filter(s=>s!==r),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}}))}}static{this.styles=[gh,bh]}get response(){return this.classList.contains("qti-match-tabular")?this._response:super.response}set response(t){this.classList.contains("qti-match-tabular")?this._response=t:super.response=t}isDragDropEnabled(){return!this.classList.contains("qti-match-tabular")}initiateDrag(...t){this.classList.contains("qti-match-tabular")||super.initiateDrag(...t)}afterCache(){this.classList.contains("qti-match-tabular")||super.afterCache()}async connectedCallback(){super.connectedCallback(),this.sourceChoices=Array.from(this.querySelectorAll("qti-simple-match-set:first-of-type qti-simple-associable-choice")),this.targetChoices=Array.from(this.querySelectorAll("qti-simple-match-set:last-of-type qti-simple-associable-choice")),this.syncTabularSlotting()}willUpdate(t){super.willUpdate?.(t),t.has("class")&&this.syncTabularSlotting()}syncTabularSlotting(){let t=this.classList.contains("qti-match-tabular"),e=this.querySelectorAll(":scope > qti-simple-match-set"),r=e[0],n=e[1],i=s=>{s.style.removeProperty("min-width"),s.style.removeProperty("min-height"),s.style.removeProperty("--qti-dropzone-min-height")};t?(r?.setAttribute("slot","match-rows"),n?.setAttribute("slot","match-cols"),this.sourceChoices?.forEach(s=>{i(s),s.setAttribute("role","rowheader")}),this.targetChoices?.forEach(s=>{i(s),s.setAttribute("role","columnheader")})):(r?.removeAttribute("slot"),n?.removeAttribute("slot"),this.sourceChoices?.forEach(s=>s.removeAttribute("role")),this.targetChoices?.forEach(s=>s.removeAttribute("role")))}validate(){return this.class.split(" ").includes("qti-match-tabular")?this.response?.length===this.sourceChoices.length:super.validate()}getCellStateVariant(t,e){return""}render(){let t=this.class.split(" ").includes("qti-match-tabular");return b`
7811
7811
  <slot name="prompt"></slot>
7812
7812
  <slot ?hidden=${t}></slot>
7813
7813
 
@@ -7823,11 +7823,11 @@ CES.load();
7823
7823
  <div part="checkbox-grid">
7824
7824
  ${this.sourceChoices.map((e,r)=>b`
7825
7825
  <div role="row" style="display: contents;">
7826
- ${this.targetChoices.map((i,o)=>{let s=e.getAttribute("identifier"),a=i.getAttribute("identifier"),l=`${s} ${a}`,c=(this.response||[]).filter(g=>g.split(" ")[0]===s).length||0,d=this.response?.includes(l)||!1,h=e.matchMax===1?"radio":"checkbox",f=this.getCellStateVariant(l,d),m=d?"checked":"",w=`control ${h} ${m} ${f}`.trim(),x=`control-mark ${h} ${m} ${f}`.trim(),u=e.matchMax===1?!1:e.matchMax!==0&&c>=e.matchMax&&!d;return b`
7826
+ ${this.targetChoices.map((n,i)=>{let s=e.getAttribute("identifier"),a=n.getAttribute("identifier"),l=`${s} ${a}`,c=(this.response||[]).filter(g=>g.split(" ")[0]===s).length||0,d=this.response?.includes(l)||!1,h=e.matchMax===1?"radio":"checkbox",f=this.getCellStateVariant(l,d),m=d?"checked":"",w=`control ${h} ${m} ${f}`.trim(),x=`control-mark ${h} ${m} ${f}`.trim(),u=e.matchMax===1?!1:e.matchMax!==0&&c>=e.matchMax&&!d;return b`
7827
7827
  <label
7828
7828
  part="input-cell"
7829
7829
  role="gridcell"
7830
- style="grid-row: ${r+1}; grid-column: ${o+1}; display: flex; align-items: center; justify-content: center; cursor: pointer;"
7830
+ style="grid-row: ${r+1}; grid-column: ${i+1}; display: flex; align-items: center; justify-content: center; cursor: pointer;"
7831
7831
  >
7832
7832
  <input
7833
7833
  type=${h}
@@ -7851,13 +7851,13 @@ CES.load();
7851
7851
  `:P}
7852
7852
 
7853
7853
  <div role="alert" part="message" id="validation-message"></div>
7854
- `}};sc([p({type:String})],ce.prototype,"class",void 0);sc([_()],ce.prototype,"_response",void 0);sc([p({type:String,attribute:"response-identifier"})],ce.prototype,"responseIdentifier",void 0);var jn=[{tag:"qti-match-interaction",ctor:ce}];var yh=[O,q`
7854
+ `}};sc([p({type:String})],ce.prototype,"class",void 0);sc([_()],ce.prototype,"_response",void 0);sc([p({type:String,attribute:"response-identifier"})],ce.prototype,"responseIdentifier",void 0);var jo=[{tag:"qti-match-interaction",ctor:ce}];var yh=[O,q`
7855
7855
  /* The box this element already had. See the note in qti-match-interaction.styles.ts. */
7856
7856
  :host {
7857
7857
  display: block;
7858
7858
  }
7859
- `];var Fn=class extends D{static{this.styles=yh}#t=null;reset(){this.#t=null}validate(){return!0}get response(){return this.#t?this.#t.toString():null}set response(t){if(t)if(!isNaN(parseInt(t?.toString())))this.#t=parseInt(t.toString());else throw new Error(`Value must be a number ${t}`)}static get properties(){return{...D.properties,step:{type:Number,attribute:"step",default:10}}}render(){return b` <slot name="prompt"></slot>
7860
- <slot></slot>`}constructor(){super()}connectedCallback(){super.connectedCallback();let t=this.querySelector("audio")||this.querySelector("video")||this.querySelector("object");t&&t.addEventListener("ended",()=>{this.#t++,this.saveResponse(this.value)})}};var Bn=[{tag:"qti-media-interaction",ctor:Fn}];var vh=[O,U,Vt,q`
7859
+ `];var Fo=class extends D{static{this.styles=yh}#t=null;reset(){this.#t=null}validate(){return!0}get response(){return this.#t?this.#t.toString():null}set response(t){if(t)if(!isNaN(parseInt(t?.toString())))this.#t=parseInt(t.toString());else throw new Error(`Value must be a number ${t}`)}static get properties(){return{...D.properties,step:{type:Number,attribute:"step",default:10}}}render(){return b` <slot name="prompt"></slot>
7860
+ <slot></slot>`}constructor(){super()}connectedCallback(){super.connectedCallback();let t=this.querySelector("audio")||this.querySelector("video")||this.querySelector("object");t&&t.addEventListener("ended",()=>{this.#t++,this.saveResponse(this.value)})}};var Bo=[{tag:"qti-media-interaction",ctor:Fo}];var vh=[O,U,Vt,q`
7861
7861
  /* The box this element already had. See the note in qti-match-interaction.styles.ts. */
7862
7862
  :host {
7863
7863
  display: block;
@@ -8067,16 +8067,16 @@ CES.load();
8067
8067
  :host([answer-key]) [part~='drags'] {
8068
8068
  display: none;
8069
8069
  }
8070
- `];var wh=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Vu=Rt(D,"qti-simple-choice","[part~='drop']","slot[part~='drags']"),Oe=class extends Ot(Vu,'[qti-draggable="true"]'){constructor(){super(...arguments),this.nrChoices=0}static{this.styles=vh}render(){let t=Array.from(this.querySelectorAll("qti-simple-choice"));return this.nrChoices<t.length&&(this.nrChoices=t.length),b` <slot name="prompt"> </slot>
8070
+ `];var wh=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Lu=Rt(D,"qti-simple-choice","[part~='drop']","slot[part~='drags']"),Oe=class extends Ot(Lu,'[qti-draggable="true"]'){constructor(){super(...arguments),this.nrChoices=0}static{this.styles=vh}render(){let t=Array.from(this.querySelectorAll("qti-simple-choice"));return this.nrChoices<t.length&&(this.nrChoices=t.length),b` <slot name="prompt"> </slot>
8071
8071
  <div part="container">
8072
8072
  <slot part="drags"> </slot>
8073
8073
  <div part="drops">
8074
- ${[...Array(this.nrChoices)].map((e,r)=>{let i=`droplist${r}`,o=this._dragDrop?.nodesByTarget?.[i]??[];return b`<div role="region" part="drop" data-declarative-drops identifier=${i}>
8075
- ${H(o,s=>s.getAttribute("identifier"),s=>s)}
8074
+ ${[...Array(this.nrChoices)].map((e,r)=>{let n=`droplist${r}`,i=this._dragDrop?.nodesByTarget?.[n]??[];return b`<div role="region" part="drop" data-declarative-drops identifier=${n}>
8075
+ ${H(i,s=>s.getAttribute("identifier"),s=>s)}
8076
8076
  </div>`})}
8077
8077
  </div>
8078
8078
  <div id="validation-message" part="message" role="alert" style="display:none;"></div>
8079
- </div>`}getValue(t){return t?.map((e,r)=>`${e} droplist${r}`)||[]}getResponse(){return Array.from(this.shadowRoot.querySelectorAll("[part~='drop']")).map(e=>this.chipsIn(e).map(r=>r.getAttribute("identifier")).join(" "))}shouldTreatBlockedMaxAsInvalid(){return!1}async firstUpdated(){super.firstUpdated(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice"))}};wh([_()],Oe.prototype,"nrChoices",void 0);wh([p({type:String})],Oe.prototype,"orientation",void 0);var Un=[{tag:"qti-order-interaction",ctor:Oe}];var xh=[O,q`
8079
+ </div>`}getValue(t){return t?.map((e,r)=>`${e} droplist${r}`)||[]}getResponse(){return Array.from(this.shadowRoot.querySelectorAll("[part~='drop']")).map(e=>this.chipsIn(e).map(r=>r.getAttribute("identifier")).join(" "))}shouldTreatBlockedMaxAsInvalid(){return!1}async firstUpdated(){super.firstUpdated(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice"))}};wh([_()],Oe.prototype,"nrChoices",void 0);wh([p({type:String})],Oe.prototype,"orientation",void 0);var Uo=[{tag:"qti-order-interaction",ctor:Oe}];var xh=[O,q`
8080
8080
  :host {
8081
8081
  display: block;
8082
8082
  width: 100%;
@@ -8086,14 +8086,14 @@ CES.load();
8086
8086
  ::slotted(qti-interaction-markup) {
8087
8087
  display: none;
8088
8088
  }
8089
- `];var wt=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},zu=["solution","review"];function ju(n){return n==null?!1:Array.isArray(n)?n.length>0:n!==""}var W=class extends D{constructor(){super(...arguments),this._iframeLoaded=!1,this._interactionReady=!1,this._pendingMessages=[],this._iframeMessageOrigin=null,this.requirePathsJson="",this.requireShimJson="",this.requireJsUrl="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js",this.baseUrl="",this.useDefaultPaths=!1,this.status="interacting",this.#e=null,this._errorMessage=null,this.response=null,this.#i=null,this.#o=null,this.#n=null,this.#s="",this.handleIframeMessage=t=>{let{data:e}=t;if(!(!e||e.source!=="qti-pci-iframe")&&!(!this.iframe?.contentWindow||t.source!==this.iframe.contentWindow)&&!(e.responseIdentifier&&e.responseIdentifier!==this.responseIdentifier)){if(this._iframeMessageOrigin===null)this._iframeMessageOrigin=t.origin;else if(t.origin!==this._iframeMessageOrigin)return;switch(e.method){case"iframeReady":this._interactionReady=!0,this.#x(),this.#q(),this.dispatchEvent(new CustomEvent("qti-portable-custom-interaction-loaded",{bubbles:!0}));break;case"resize":typeof e.height=="number"&&this.iframe&&(this.iframe.style.height=`${e.height}px`,this.iframe.style.width=`${e.width}px`);break;case"console":this.dispatchEvent(new CustomEvent("qti-pci-console",{detail:{level:e.level,args:e.args},bubbles:!0}));break;case"interactionChanged":{let r=e?.params?.value,i=r&&typeof r=="object"?this.#u(r):null,o=typeof e?.params?.valid=="boolean"?e.params.valid:null,s=typeof e?.params?.customValidity=="string"?e.params.customValidity:null;o!==null&&(this.#n=o,o&&s===null&&(this.#s="")),s!==null&&(this.#s=s);let a=e?.params?.state,l;if(a===void 0)l=void 0;else if(a===null)l=null;else if(typeof a=="string")l=a;else try{l=`__qti_json__::${JSON.stringify(a)}`}catch{l=null}if(i===null){let c=this.responseVariable?.cardinality==="single"?"":[];this.response=c,this.validate(),this.saveResponse(c,l);break}this.response=i,this.validate(),this.saveResponse(i,l);break}case"error":this._errorMessage=e.params.message,console.error("Error from PCI iframe:",e.params.message);break}}},this.#g=null}#t;static{this.styles=[xh,q`
8089
+ `];var wt=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Vu=["solution","review"];function zu(o){return o==null?!1:Array.isArray(o)?o.length>0:o!==""}var W=class extends D{constructor(){super(...arguments),this._iframeLoaded=!1,this._interactionReady=!1,this._pendingMessages=[],this._iframeMessageOrigin=null,this.requirePathsJson="",this.requireShimJson="",this.requireJsUrl="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js",this.baseUrl="",this.useDefaultPaths=!1,this.status="interacting",this.#e=null,this._errorMessage=null,this.response=null,this.#n=null,this.#i=null,this.#o=null,this.#s="",this.handleIframeMessage=t=>{let{data:e}=t;if(!(!e||e.source!=="qti-pci-iframe")&&!(!this.iframe?.contentWindow||t.source!==this.iframe.contentWindow)&&!(e.responseIdentifier&&e.responseIdentifier!==this.responseIdentifier)){if(this._iframeMessageOrigin===null)this._iframeMessageOrigin=t.origin;else if(t.origin!==this._iframeMessageOrigin)return;switch(e.method){case"iframeReady":this._interactionReady=!0,this.#x(),this.#q(),this.dispatchEvent(new CustomEvent("qti-portable-custom-interaction-loaded",{bubbles:!0}));break;case"resize":typeof e.height=="number"&&this.iframe&&(this.iframe.style.height=`${e.height}px`,this.iframe.style.width=`${e.width}px`);break;case"console":this.dispatchEvent(new CustomEvent("qti-pci-console",{detail:{level:e.level,args:e.args},bubbles:!0}));break;case"interactionChanged":{let r=e?.params?.value,n=r&&typeof r=="object"?this.#u(r):null,i=typeof e?.params?.valid=="boolean"?e.params.valid:null,s=typeof e?.params?.customValidity=="string"?e.params.customValidity:null;i!==null&&(this.#o=i,i&&s===null&&(this.#s="")),s!==null&&(this.#s=s);let a=e?.params?.state,l;if(a===void 0)l=void 0;else if(a===null)l=null;else if(typeof a=="string")l=a;else try{l=`__qti_json__::${JSON.stringify(a)}`}catch{l=null}if(n===null){let c=this.responseVariable?.cardinality==="single"?"":[];this.response=c,this.validate(),this.saveResponse(c,l);break}this.response=n,this.validate(),this.saveResponse(n,l);break}case"error":this._errorMessage=e.params.message,console.error("Error from PCI iframe:",e.params.message);break}}},this.#g=null}#t;static{this.styles=[xh,q`
8090
8090
  :host {
8091
8091
  display: block;
8092
8092
  width: 100%;
8093
8093
  min-height: 50px;
8094
8094
  }
8095
- `]}#e;set responseDeclaration(t){this.#e=t}get responseDeclaration(){if(this.#e)return this.#e;let t=this.responseVariable;if(!t)return null;let e={baseType:t.baseType,cardinality:t.cardinality},r=t.correctResponse;return ju(r)&&(e.correctResponse={value:r}),e}#r(){let t=this.responseDeclaration;if(!t?.correctResponse||zu.includes(this.status))return t;let{correctResponse:e,...r}=t;return r}#i;#o;#n;#s;#a(){if(this.#i===null&&this.requirePathsJson)try{let t=JSON.parse(this.requirePathsJson);if(Array.isArray(t)||!t||typeof t!="object")throw new Error("Require paths must be a JSON object.");this.#i=t}catch(t){console.error("Error parsing require paths JSON:",t),this._errorMessage=`Error parsing require paths JSON: ${t.message}`,this.#i={}}return this.#i||{}}#c(){if(this.#o===null&&this.requireShimJson)try{this.#o=JSON.parse(this.requireShimJson)}catch(t){console.error("Error parsing require shim JSON:",t),this._errorMessage=`Error parsing require shim JSON: ${t.message}`,this.#o={}}return this.#o||{}}#h(){return this.#a()}#l(){return this.#c()}#u(t){for(let e in t)if(t.hasOwnProperty(e)){let r=t[e];if(r){for(let i in r)if(r.hasOwnProperty(i)){let o=r[i];if(Array.isArray(o))return o.map(String);if(o!=null)return String(o)}}}return null}getDirectChildrenByTag(t){let e=t.toLowerCase();return Array.from(this.children).filter(r=>r.tagName.toLowerCase()===e)}coerceBaseValue(t,e){if(t==null)return t;switch(e){case"integer":{if(typeof t=="number")return t;let r=parseInt(String(t),10);return Number.isNaN(r)?t:r}case"float":case"duration":{if(typeof t=="number")return t;let r=parseFloat(String(t));return Number.isNaN(r)?t:r}case"boolean":{if(typeof t=="boolean")return t;if(typeof t=="string"){let r=t.toLowerCase();if(r==="true")return!0;if(r==="false")return!1}return t}default:return String(t)}}normalizeListValue(t){return t==null?[]:Array.isArray(t)?t:[t]}variableToQtiVariableJSON(t,e,r){if(e==="record"||r==="record")return this.recordToQtiVariableJSON(t);if(e!=="single"){let i=this.normalizeListValue(t).map(o=>this.coerceBaseValue(o,r));return{list:{[r]:i}}}return{base:{[r]:this.coerceBaseValue(t,r)}}}recordToQtiVariableJSON(t){if(!t||typeof t!="object")return{record:[]};let e=[];for(let[r,i]of Object.entries(t))e.push(this.recordEntryFromValue(r,i));return{record:e}}recordEntryFromValue(t,e){if(Array.isArray(e)){let r=e.filter(i=>i!=null);if(r.length&&r.every(i=>typeof i=="boolean"))return{name:t,list:{boolean:r}};if(r.length&&r.every(i=>typeof i=="number")){let i=r,o=i.every(s=>Number.isInteger(s));return{name:t,list:{[o?"integer":"float"]:i}}}return{name:t,list:{string:e.map(i=>i==null?"":String(i))}}}if(typeof e=="boolean")return{name:t,base:{boolean:e}};if(typeof e=="number")return Number.isInteger(e)?{name:t,base:{integer:e}}:{name:t,base:{float:e}};if(e==null)return{name:t,base:{string:""}};if(typeof e=="object")try{return{name:t,base:{string:JSON.stringify(e)}}}catch{return{name:t,base:{string:String(e)}}}return{name:t,base:{string:String(e)}}}getQtiContextDefaultsFromItem(){let t=this.closest("qti-assessment-item");if(!t)return{};let e={};return t.querySelectorAll('qti-context-declaration[identifier="QTI_CONTEXT"]').forEach(i=>{let o=i.querySelector("qti-default-value");if(!o)return;o.querySelectorAll("qti-value[field-identifier]").forEach(a=>{let l=a.getAttribute("field-identifier");if(!l)return;let c=a.getAttribute("base-type")||"string",d=a.textContent?.trim()||"";e[l]=this.coerceBaseValue(d,c)})}),e}getQtiContextRecord(){let t=this.getQtiContextDefaultsFromItem(),e=this.qtiContext?.QTI_CONTEXT||{},r={...t,...e};if(!Object.keys(r).length)return null;let i={candidateIdentifier:r.candidateIdentifier??"",testIdentifier:r.testIdentifier??"",environmentIdentifier:r.environmentIdentifier??"",...r};return this.recordToQtiVariableJSON(i)}getTemplateVariables(){let t={},e=this.getDirectChildrenByTag("qti-template-variable");return e.length&&e.forEach(r=>{let i=r.getAttribute("template-identifier")||r.getAttribute("identifier")||"";if(!i)return;let o=this.context?.variables?.find(l=>l.identifier===i);if(!o)return;let s=o.cardinality||"single",a=o.baseType||"string";t[i]=this.variableToQtiVariableJSON(o.value,s,a)}),t}getContextVariables(){let t={},e=this.getDirectChildrenByTag("qti-context-variable");return e.length&&e.forEach(r=>{let i=r.getAttribute("identifier")||"";if(!i)return;if(i==="QTI_CONTEXT"){let l=this.getQtiContextRecord();l&&(t[i]=l);return}let o=this.context?.variables?.find(l=>l.identifier===i);if(!o)return;let s=o.cardinality||"single",a=o.baseType||"string";t[i]=this.variableToQtiVariableJSON(o.value,s,a)}),t}#d(t){let e={...t};for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let i=r.replace(/[A-Z]/g,o=>`-${o.toLowerCase()}`);e[i]=t[r]}return e}#p(t){let e={...t},r=(i,o,s)=>{let a=i;for(let l=0;l<o.length;l+=1){let c=o[l];if(l===o.length-1){a[c]=s;return}(!a[c]||typeof a[c]!="object"||Array.isArray(a[c]))&&(a[c]={}),a=a[c]}};for(let[i,o]of Object.entries(t)){if(!i.includes("__"))continue;let s=i.split("__").filter(Boolean);s.length<2||r(e,s,o)}return e}responseVariablesToQtiVariableJSON(t,e,r){if(e!=="single"){let i={list:{}};return i.list[r]=t,i}else{let i={base:{}};return i.base[r]=t,i}}#m(){return this.response===null||this.response===void 0?!1:Array.isArray(this.response)?this.response.length===0?!1:this.response.some(t=>t!==""&&t!==null&&t!==void 0):this.response!==""}#b(t,e){let r=this.dataset.invalidresponsemessage||"Invalid response.",i=t?"":e&&e.trim().length>0?e:r;this._internals.setValidity(t?{}:{customError:!0},i)}validate(){let t=typeof this.#n=="boolean"?this.#n:this.#m();return this.#b(t,this.#s),t}set value(t){t===null?this.#t=[]:this.#t=Array.isArray(t)?t:t.split(",")}get value(){return this.#t===null||this.#t===void 0?null:Array.isArray(this.#t)?this.#t.join(","):String(this.#t)}set boundTo(t){if(!t||!t[this.responseIdentifier])return;let e=this.#u(t[this.responseIdentifier]);this.#t=e,this.saveResponse(e)}get boundTo(){let t={};if(this.context?.variables?.find(r=>r.identifier===this.responseIdentifier)){let r=this.context?.variables?.find(a=>a.identifier===this.responseIdentifier)?.cardinality||"single",i=this.context?.variables?.find(a=>a.identifier===this.responseIdentifier)?.baseType||"string",o=this.context?.variables?.find(a=>a.identifier===this.responseIdentifier)?.value||null,s=this.responseVariablesToQtiVariableJSON(o,r,i);t[this.responseIdentifier]=s}return t}#f(t){return t&&t.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&#x2F;/g,"/").replace(/&#x60;/g,"`").replace(/&#x3D;/g,"=")}#y(t){let e={};for(let[r,i]of Object.entries(t))typeof i=="string"?e[r]=this.#f(i):e[r]=i;return e}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this.handleIframeMessage)}sendMessageToIframe(t,e){let r=this.iframe?.contentWindow;if(!this._iframeLoaded||!r){this._pendingMessages.push({method:t,params:e});return}r.postMessage({source:"qti-portable-custom-interaction",responseIdentifier:this.responseIdentifier,method:t,params:e},"*")}#q(){this._pendingMessages.length&&(this._pendingMessages.forEach(t=>{this.sendMessageToIframe(t.method,t.params)}),this._pendingMessages=[])}createIframe(){this._interactionReady=!1,this.iframe=document.createElement("iframe"),this.iframe.id=`pci-iframe-${this.responseIdentifier}`,this.iframe.setAttribute("title","QTI PCI Iframe"),this.iframe.setAttribute("aria-label","QTI PCI Iframe"),this.iframe.setAttribute("aria-hidden","false"),this.iframe.setAttribute("role","application"),this.iframe.style.width="100%",this.iframe.style.border="none",this.iframe.style.display="block",this.iframe.onload=()=>{this._iframeLoaded=!0,this.#w(),this.#v()};let t=`qti-pci-${this.responseIdentifier}-${Date.now()}`;this.iframe.name=t;let e=this.generateIframeContent();this.iframe.srcdoc=e,this.appendChild(this.iframe)}#v(){let t=this.#d(this.#p(this.#y({...this.dataset}))),e=this.context?.state?.[this.responseIdentifier],r=typeof e=="string"&&e.length>0?e:null,i={module:this.module,customInteractionTypeIdentifier:this.customInteractionTypeIdentifier,baseUrl:this.baseUrl?this.baseUrl.startsWith("http")||this.baseUrl.startsWith("blob")||this.baseUrl.startsWith("base64")?this.baseUrl:_o(`${window.location.origin}${this.baseUrl}`):window.location.origin,responseIdentifier:this.responseIdentifier,properties:t,contextVariables:this.getContextVariables(),templateVariables:this.getTemplateVariables(),dataAttributes:{...this.dataset},interactionModules:this.#C(),boundTo:r?null:this.boundTo,responseDeclaration:this.#r(),status:this.status,state:r};this.sendMessageToIframe("initialize",i)}#C(){let t=[],e=this.querySelector("qti-interaction-modules");if(e){let r=e.querySelectorAll("qti-interaction-module");for(let i of r)t.push({id:i.getAttribute("id"),primaryPath:i.getAttribute("primary-path"),fallbackPath:i.getAttribute("fallback-path")})}return t}#w(){let t=this.querySelector("qti-interaction-markup");t&&this.sendMessageToIframe("setMarkup",t.innerHTML);let e=Array.from(this.querySelectorAll("qti-stylesheet"));if(e.length){let i=e.map(o=>o.outerHTML).join(`
8096
- `);this.sendMessageToIframe("setStylesheets",i)}let r=this.querySelector("properties");r&&this.sendMessageToIframe("setProperties",r.innerHTML)}#x(){}connectedCallback(){super.connectedCallback(),this.#n=null,this.#s="";let t=this.response;(Array.isArray(t)?t.length>0:t)||(this.response=this.responseVariable?.value??null),window.addEventListener("message",this.handleIframeMessage),this.createIframe()}generateIframeContent(){let t=window.getComputedStyle(document.body),e=JSON.stringify(this.#h()),r=JSON.stringify(this.#l()),i=this.dataset.baseUrl?this.dataset.baseUrl.startsWith("/")?`${window.location.origin}${this.dataset.baseUrl}`:this.dataset.baseUrl:"",o=i?i.endsWith("/")?i:`${i}/`:`${window.location.origin}/`,s=this.dataset.forwardConsole==="true",a=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1",l=a?`${window.location.origin}/cdn/index.js`:"https://unpkg.com/@citolab/qti-components/cdn",c=a?`${window.location.origin}/dist/item.css`:"https://unpkg.com/@citolab/qti-components@latest/dist/item.css",d=this.dataset.componentsCdnUrl||l,h=this.dataset.componentsCssUrl||c,f=`
8095
+ `]}#e;set responseDeclaration(t){this.#e=t}get responseDeclaration(){if(this.#e)return this.#e;let t=this.responseVariable;if(!t)return null;let e={baseType:t.baseType,cardinality:t.cardinality},r=t.correctResponse;return zu(r)&&(e.correctResponse={value:r}),e}#r(){let t=this.responseDeclaration;if(!t?.correctResponse||Vu.includes(this.status))return t;let{correctResponse:e,...r}=t;return r}#n;#i;#o;#s;#a(){if(this.#n===null&&this.requirePathsJson)try{let t=JSON.parse(this.requirePathsJson);if(Array.isArray(t)||!t||typeof t!="object")throw new Error("Require paths must be a JSON object.");this.#n=t}catch(t){console.error("Error parsing require paths JSON:",t),this._errorMessage=`Error parsing require paths JSON: ${t.message}`,this.#n={}}return this.#n||{}}#c(){if(this.#i===null&&this.requireShimJson)try{this.#i=JSON.parse(this.requireShimJson)}catch(t){console.error("Error parsing require shim JSON:",t),this._errorMessage=`Error parsing require shim JSON: ${t.message}`,this.#i={}}return this.#i||{}}#h(){return this.#a()}#l(){return this.#c()}#u(t){for(let e in t)if(t.hasOwnProperty(e)){let r=t[e];if(r){for(let n in r)if(r.hasOwnProperty(n)){let i=r[n];if(Array.isArray(i))return i.map(String);if(i!=null)return String(i)}}}return null}getDirectChildrenByTag(t){let e=t.toLowerCase();return Array.from(this.children).filter(r=>r.tagName.toLowerCase()===e)}coerceBaseValue(t,e){if(t==null)return t;switch(e){case"integer":{if(typeof t=="number")return t;let r=parseInt(String(t),10);return Number.isNaN(r)?t:r}case"float":case"duration":{if(typeof t=="number")return t;let r=parseFloat(String(t));return Number.isNaN(r)?t:r}case"boolean":{if(typeof t=="boolean")return t;if(typeof t=="string"){let r=t.toLowerCase();if(r==="true")return!0;if(r==="false")return!1}return t}default:return String(t)}}normalizeListValue(t){return t==null?[]:Array.isArray(t)?t:[t]}variableToQtiVariableJSON(t,e,r){if(e==="record"||r==="record")return this.recordToQtiVariableJSON(t);if(e!=="single"){let n=this.normalizeListValue(t).map(i=>this.coerceBaseValue(i,r));return{list:{[r]:n}}}return{base:{[r]:this.coerceBaseValue(t,r)}}}recordToQtiVariableJSON(t){if(!t||typeof t!="object")return{record:[]};let e=[];for(let[r,n]of Object.entries(t))e.push(this.recordEntryFromValue(r,n));return{record:e}}recordEntryFromValue(t,e){if(Array.isArray(e)){let r=e.filter(n=>n!=null);if(r.length&&r.every(n=>typeof n=="boolean"))return{name:t,list:{boolean:r}};if(r.length&&r.every(n=>typeof n=="number")){let n=r,i=n.every(s=>Number.isInteger(s));return{name:t,list:{[i?"integer":"float"]:n}}}return{name:t,list:{string:e.map(n=>n==null?"":String(n))}}}if(typeof e=="boolean")return{name:t,base:{boolean:e}};if(typeof e=="number")return Number.isInteger(e)?{name:t,base:{integer:e}}:{name:t,base:{float:e}};if(e==null)return{name:t,base:{string:""}};if(typeof e=="object")try{return{name:t,base:{string:JSON.stringify(e)}}}catch{return{name:t,base:{string:String(e)}}}return{name:t,base:{string:String(e)}}}getQtiContextDefaultsFromItem(){let t=this.closest("qti-assessment-item");if(!t)return{};let e={};return t.querySelectorAll('qti-context-declaration[identifier="QTI_CONTEXT"]').forEach(n=>{let i=n.querySelector("qti-default-value");if(!i)return;i.querySelectorAll("qti-value[field-identifier]").forEach(a=>{let l=a.getAttribute("field-identifier");if(!l)return;let c=a.getAttribute("base-type")||"string",d=a.textContent?.trim()||"";e[l]=this.coerceBaseValue(d,c)})}),e}getQtiContextRecord(){let t=this.getQtiContextDefaultsFromItem(),e=this.qtiContext?.QTI_CONTEXT||{},r={...t,...e};if(!Object.keys(r).length)return null;let n={candidateIdentifier:r.candidateIdentifier??"",testIdentifier:r.testIdentifier??"",environmentIdentifier:r.environmentIdentifier??"",...r};return this.recordToQtiVariableJSON(n)}getTemplateVariables(){let t={},e=this.getDirectChildrenByTag("qti-template-variable");return e.length&&e.forEach(r=>{let n=r.getAttribute("template-identifier")||r.getAttribute("identifier")||"";if(!n)return;let i=this.context?.variables?.find(l=>l.identifier===n);if(!i)return;let s=i.cardinality||"single",a=i.baseType||"string";t[n]=this.variableToQtiVariableJSON(i.value,s,a)}),t}getContextVariables(){let t={},e=this.getDirectChildrenByTag("qti-context-variable");return e.length&&e.forEach(r=>{let n=r.getAttribute("identifier")||"";if(!n)return;if(n==="QTI_CONTEXT"){let l=this.getQtiContextRecord();l&&(t[n]=l);return}let i=this.context?.variables?.find(l=>l.identifier===n);if(!i)return;let s=i.cardinality||"single",a=i.baseType||"string";t[n]=this.variableToQtiVariableJSON(i.value,s,a)}),t}#d(t){let e={...t};for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let n=r.replace(/[A-Z]/g,i=>`-${i.toLowerCase()}`);e[n]=t[r]}return e}#p(t){let e={...t},r=(n,i,s)=>{let a=n;for(let l=0;l<i.length;l+=1){let c=i[l];if(l===i.length-1){a[c]=s;return}(!a[c]||typeof a[c]!="object"||Array.isArray(a[c]))&&(a[c]={}),a=a[c]}};for(let[n,i]of Object.entries(t)){if(!n.includes("__"))continue;let s=n.split("__").filter(Boolean);s.length<2||r(e,s,i)}return e}responseVariablesToQtiVariableJSON(t,e,r){if(e!=="single"){let n={list:{}};return n.list[r]=t,n}else{let n={base:{}};return n.base[r]=t,n}}#m(){return this.response===null||this.response===void 0?!1:Array.isArray(this.response)?this.response.length===0?!1:this.response.some(t=>t!==""&&t!==null&&t!==void 0):this.response!==""}#b(t,e){let r=this.dataset.invalidresponsemessage||"Invalid response.",n=t?"":e&&e.trim().length>0?e:r;this._internals.setValidity(t?{}:{customError:!0},n)}validate(){let t=typeof this.#o=="boolean"?this.#o:this.#m();return this.#b(t,this.#s),t}set value(t){t===null?this.#t=[]:this.#t=Array.isArray(t)?t:t.split(",")}get value(){return this.#t===null||this.#t===void 0?null:Array.isArray(this.#t)?this.#t.join(","):String(this.#t)}set boundTo(t){if(!t||!t[this.responseIdentifier])return;let e=this.#u(t[this.responseIdentifier]);this.#t=e,this.saveResponse(e)}get boundTo(){let t={};if(this.context?.variables?.find(r=>r.identifier===this.responseIdentifier)){let r=this.context?.variables?.find(a=>a.identifier===this.responseIdentifier)?.cardinality||"single",n=this.context?.variables?.find(a=>a.identifier===this.responseIdentifier)?.baseType||"string",i=this.context?.variables?.find(a=>a.identifier===this.responseIdentifier)?.value||null,s=this.responseVariablesToQtiVariableJSON(i,r,n);t[this.responseIdentifier]=s}return t}#f(t){return t&&t.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&#x2F;/g,"/").replace(/&#x60;/g,"`").replace(/&#x3D;/g,"=")}#y(t){let e={};for(let[r,n]of Object.entries(t))typeof n=="string"?e[r]=this.#f(n):e[r]=n;return e}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this.handleIframeMessage)}sendMessageToIframe(t,e){let r=this.iframe?.contentWindow;if(!this._iframeLoaded||!r){this._pendingMessages.push({method:t,params:e});return}r.postMessage({source:"qti-portable-custom-interaction",responseIdentifier:this.responseIdentifier,method:t,params:e},"*")}#q(){this._pendingMessages.length&&(this._pendingMessages.forEach(t=>{this.sendMessageToIframe(t.method,t.params)}),this._pendingMessages=[])}createIframe(){this._interactionReady=!1,this.iframe=document.createElement("iframe"),this.iframe.id=`pci-iframe-${this.responseIdentifier}`,this.iframe.setAttribute("title","QTI PCI Iframe"),this.iframe.setAttribute("aria-label","QTI PCI Iframe"),this.iframe.setAttribute("aria-hidden","false"),this.iframe.setAttribute("role","application"),this.iframe.style.width="100%",this.iframe.style.border="none",this.iframe.style.display="block",this.iframe.onload=()=>{this._iframeLoaded=!0,this.#w(),this.#v()};let t=`qti-pci-${this.responseIdentifier}-${Date.now()}`;this.iframe.name=t;let e=this.generateIframeContent();this.iframe.srcdoc=e,this.appendChild(this.iframe)}#v(){let t=this.#d(this.#p(this.#y({...this.dataset}))),e=this.context?.state?.[this.responseIdentifier],r=typeof e=="string"&&e.length>0?e:null,n={module:this.module,customInteractionTypeIdentifier:this.customInteractionTypeIdentifier,baseUrl:this.baseUrl?this.baseUrl.startsWith("http")||this.baseUrl.startsWith("blob")||this.baseUrl.startsWith("base64")?this.baseUrl:_i(`${window.location.origin}${this.baseUrl}`):window.location.origin,responseIdentifier:this.responseIdentifier,properties:t,contextVariables:this.getContextVariables(),templateVariables:this.getTemplateVariables(),dataAttributes:{...this.dataset},interactionModules:this.#C(),boundTo:r?null:this.boundTo,responseDeclaration:this.#r(),status:this.status,state:r};this.sendMessageToIframe("initialize",n)}#C(){let t=[],e=this.querySelector("qti-interaction-modules");if(e){let r=e.querySelectorAll("qti-interaction-module");for(let n of r)t.push({id:n.getAttribute("id"),primaryPath:n.getAttribute("primary-path"),fallbackPath:n.getAttribute("fallback-path")})}return t}#w(){let t=this.querySelector("qti-interaction-markup");t&&this.sendMessageToIframe("setMarkup",t.innerHTML);let e=Array.from(this.querySelectorAll("qti-stylesheet"));if(e.length){let n=e.map(i=>i.outerHTML).join(`
8096
+ `);this.sendMessageToIframe("setStylesheets",n)}let r=this.querySelector("properties");r&&this.sendMessageToIframe("setProperties",r.innerHTML)}#x(){}connectedCallback(){super.connectedCallback(),this.#o=null,this.#s="";let t=this.response;(Array.isArray(t)?t.length>0:t)||(this.response=this.responseVariable?.value??null),window.addEventListener("message",this.handleIframeMessage),this.createIframe()}generateIframeContent(){let t=window.getComputedStyle(document.body),e=JSON.stringify(this.#h()),r=JSON.stringify(this.#l()),n=this.dataset.baseUrl?this.dataset.baseUrl.startsWith("/")?`${window.location.origin}${this.dataset.baseUrl}`:this.dataset.baseUrl:"",i=n?n.endsWith("/")?n:`${n}/`:`${window.location.origin}/`,s=this.dataset.forwardConsole==="true",a=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1",l=a?`${window.location.origin}/cdn/index.js`:"https://unpkg.com/@citolab/qti-components/cdn",c=a?`${window.location.origin}/dist/item.css`:"https://unpkg.com/@citolab/qti-components@latest/dist/item.css",d=this.dataset.componentsCdnUrl||l,h=this.dataset.componentsCssUrl||c,f=`
8097
8097
  font-family: ${t.getPropertyValue("font-family")};
8098
8098
  font-size: ${t.getPropertyValue("font-size")};
8099
8099
  line-height: ${t.getPropertyValue("line-height")};
@@ -8104,7 +8104,7 @@ CES.load();
8104
8104
  <head>
8105
8105
  <meta charset="utf-8" />
8106
8106
  <title>QTI PCI Container</title>
8107
- <base href="${o}" />
8107
+ <base href="${i}" />
8108
8108
  <script type="module">
8109
8109
  import '${d}';
8110
8110
  </script>
@@ -8184,7 +8184,7 @@ CES.load();
8184
8184
  catchError: true,
8185
8185
  waitSeconds: 30,
8186
8186
  paths: window.requirePaths,
8187
- baseUrl: '${i}',
8187
+ baseUrl: '${n}',
8188
8188
  shim: window.requireShim,
8189
8189
  onNodeCreated: function (node, config, moduleName, url) {
8190
8190
  // Add error handler to script node
@@ -8990,7 +8990,7 @@ CES.load();
8990
8990
  <h1>Error</h1>
8991
8991
  ${this._errorMessage}
8992
8992
  </div>`:""}
8993
- `}};wt([p({type:String,attribute:"module"})],W.prototype,"module",void 0);wt([p({type:String,attribute:"custom-interaction-type-identifier"})],W.prototype,"customInteractionTypeIdentifier",void 0);wt([p({type:String,attribute:"data-require-paths"})],W.prototype,"requirePathsJson",void 0);wt([p({type:String,attribute:"data-require-shim"})],W.prototype,"requireShimJson",void 0);wt([p({type:String,attribute:"data-require-js-url"})],W.prototype,"requireJsUrl",void 0);wt([p({type:String,attribute:"data-base-url"})],W.prototype,"baseUrl",void 0);wt([p({type:Boolean,attribute:"data-use-default-paths"})],W.prototype,"useDefaultPaths",void 0);wt([p({type:String,attribute:"data-status"})],W.prototype,"status",void 0);wt([_()],W.prototype,"_errorMessage",void 0);wt([T({context:j,subscribe:!0}),_()],W.prototype,"context",void 0);wt([T({context:ut,subscribe:!0}),_()],W.prototype,"qtiContext",void 0);wt([p({attribute:"response",reflect:!1,converter:zt({emptyAs:null})})],W.prototype,"response",void 0);var Hn=class extends W{#t=!1;async waitForReady(t=5e3){this._interactionReady||await new Promise((e,r)=>{let i=()=>{window.clearTimeout(o),e()},o=window.setTimeout(()=>{this.removeEventListener("qti-portable-custom-interaction-loaded",i),r(new Error(`Portable custom interaction did not become ready within ${t}ms`))},t);this.addEventListener("qti-portable-custom-interaction-loaded",i,{once:!0})})}async getIFrameContent(){return new Promise(t=>{let e=`get-content-${Date.now()}`,r=i=>{let{data:o}=i;o?.source==="qti-pci-iframe"&&(!o?.responseIdentifier||o?.responseIdentifier===this.responseIdentifier)&&o?.method==="getContentResponse"&&o?.messageId===e&&(window.removeEventListener("message",r),t(o.content))};window.addEventListener("message",r),this.sendMessageToIframe("getContent",{messageId:e}),setTimeout(()=>{window.removeEventListener("message",r),t("")},5e3)})}setTestContext(t){this.context=t,this.updateComplete.then(()=>{this.value=t?.variables?.find(e=>e.identifier===this.responseIdentifier).value})}async recreateIframe(){this.#t=!0;try{this.iframe&&(this._iframeLoaded=!1,this.iframe.remove()),this._pendingMessages=[],this.createIframe(),await this.waitForReady()}finally{this.#t=!1}}disconnectedCallback(){this.#t||super.disconnectedCallback()}async iFrameMouseClick(t,e){return new Promise(r=>{let i=`click-${Date.now()}`,o=s=>{let{data:a}=s;a?.source==="qti-pci-iframe"&&(!a?.responseIdentifier||a?.responseIdentifier===this.responseIdentifier)&&a?.method==="clickResponse"&&a?.messageId===i&&(window.removeEventListener("message",o),r())};window.addEventListener("message",o),this.sendMessageToIframe("simulateClick",{x:t,y:e,messageId:i}),setTimeout(()=>{window.removeEventListener("message",o),r()},5e3)})}async iFrameClickOnElement(t){return new Promise(e=>{let r=`click-selector-${Date.now()}`,i=o=>{let{data:s}=o;s?.source==="qti-pci-iframe"&&(!s?.responseIdentifier||s?.responseIdentifier===this.responseIdentifier)&&s?.method==="clickSelectorResponse"&&s?.messageId===r&&(window.removeEventListener("message",i),e(s.success))};window.addEventListener("message",i),this.sendMessageToIframe("clickOnSelector",{selector:t,messageId:r}),setTimeout(()=>{window.removeEventListener("message",i),e(!1)},5e3)})}async iFrameClickOnElementByText(t){return new Promise(e=>{let r=`click-text-${Date.now()}`,i=o=>{let{data:s}=o;s?.source==="qti-pci-iframe"&&(!s?.responseIdentifier||s?.responseIdentifier===this.responseIdentifier)&&s?.method==="clickTextResponse"&&s?.messageId===r&&(window.removeEventListener("message",i),e(s.success))};window.addEventListener("message",i),this.sendMessageToIframe("clickOnElementByText",{text:t,messageId:r}),setTimeout(()=>{window.removeEventListener("message",i),e(!1)},5e3)})}async iFrameSetValueElement(t,e){return new Promise(r=>{let i=`set-value-${Date.now()}`,o=s=>{let{data:a}=s;a?.source==="qti-pci-iframe"&&(!a?.responseIdentifier||a?.responseIdentifier===this.responseIdentifier)&&a?.method==="setValueResponse"&&a?.messageId===i&&(window.removeEventListener("message",o),r(a.success))};window.addEventListener("message",o),this.sendMessageToIframe("setValueElement",{selector:t,value:e,messageId:i}),setTimeout(()=>{window.removeEventListener("message",o),r(!1)},5e3)})}async iFrameGetBoundingClientRect(t){return new Promise(e=>{let r=`get-bounding-rect-${Date.now()}`,i=o=>{let{data:s}=o;s?.source==="qti-pci-iframe"&&(!s?.responseIdentifier||s?.responseIdentifier===this.responseIdentifier)&&s?.method==="getBoundingRectResponse"&&s?.messageId===r&&(window.removeEventListener("message",i),e(s.rect??null))};window.addEventListener("message",i),this.sendMessageToIframe("getBoundingRect",{selector:t,messageId:r}),setTimeout(()=>{window.removeEventListener("message",i),e(null)},5e3)})}async iFrameSetValueElementByText(t,e){return new Promise(r=>{let i=`set-value-text-${Date.now()}`,o=s=>{let{data:a}=s;a?.source==="qti-pci-iframe"&&(!a?.responseIdentifier||a?.responseIdentifier===this.responseIdentifier)&&a?.method==="setValueByTextResponse"&&a?.messageId===i&&(window.removeEventListener("message",o),r(a.success))};window.addEventListener("message",o),this.sendMessageToIframe("setValueElementByText",{text:t,value:e,messageId:i}),setTimeout(()=>{window.removeEventListener("message",o),r(!1)},5e3)})}async iFrameMousedownOnElement(t){return new Promise(e=>{let r=`mousedown-selector-${Date.now()}`,i=o=>{let{data:s}=o;s?.source==="qti-pci-iframe"&&(!s?.responseIdentifier||s?.responseIdentifier===this.responseIdentifier)&&s?.method==="mousedownSelectorResponse"&&s?.messageId===r&&(window.removeEventListener("message",i),e(s.success))};window.addEventListener("message",i),this.sendMessageToIframe("mousedownOnSelector",{selector:t,messageId:r}),setTimeout(()=>{window.removeEventListener("message",i),e(!1)},5e3)})}generateIframeContent(){let t=super.generateIframeContent(),e=`
8993
+ `}};wt([p({type:String,attribute:"module"})],W.prototype,"module",void 0);wt([p({type:String,attribute:"custom-interaction-type-identifier"})],W.prototype,"customInteractionTypeIdentifier",void 0);wt([p({type:String,attribute:"data-require-paths"})],W.prototype,"requirePathsJson",void 0);wt([p({type:String,attribute:"data-require-shim"})],W.prototype,"requireShimJson",void 0);wt([p({type:String,attribute:"data-require-js-url"})],W.prototype,"requireJsUrl",void 0);wt([p({type:String,attribute:"data-base-url"})],W.prototype,"baseUrl",void 0);wt([p({type:Boolean,attribute:"data-use-default-paths"})],W.prototype,"useDefaultPaths",void 0);wt([p({type:String,attribute:"data-status"})],W.prototype,"status",void 0);wt([_()],W.prototype,"_errorMessage",void 0);wt([T({context:j,subscribe:!0}),_()],W.prototype,"context",void 0);wt([T({context:ut,subscribe:!0}),_()],W.prototype,"qtiContext",void 0);wt([p({attribute:"response",reflect:!1,converter:zt({emptyAs:null})})],W.prototype,"response",void 0);var Ho=class extends W{#t=!1;async waitForReady(t=5e3){this._interactionReady||await new Promise((e,r)=>{let n=()=>{window.clearTimeout(i),e()},i=window.setTimeout(()=>{this.removeEventListener("qti-portable-custom-interaction-loaded",n),r(new Error(`Portable custom interaction did not become ready within ${t}ms`))},t);this.addEventListener("qti-portable-custom-interaction-loaded",n,{once:!0})})}async getIFrameContent(){return new Promise(t=>{let e=`get-content-${Date.now()}`,r=n=>{let{data:i}=n;i?.source==="qti-pci-iframe"&&(!i?.responseIdentifier||i?.responseIdentifier===this.responseIdentifier)&&i?.method==="getContentResponse"&&i?.messageId===e&&(window.removeEventListener("message",r),t(i.content))};window.addEventListener("message",r),this.sendMessageToIframe("getContent",{messageId:e}),setTimeout(()=>{window.removeEventListener("message",r),t("")},5e3)})}setTestContext(t){this.context=t,this.updateComplete.then(()=>{this.value=t?.variables?.find(e=>e.identifier===this.responseIdentifier).value})}async recreateIframe(){this.#t=!0;try{this.iframe&&(this._iframeLoaded=!1,this.iframe.remove()),this._pendingMessages=[],this.createIframe(),await this.waitForReady()}finally{this.#t=!1}}disconnectedCallback(){this.#t||super.disconnectedCallback()}async iFrameMouseClick(t,e){return new Promise(r=>{let n=`click-${Date.now()}`,i=s=>{let{data:a}=s;a?.source==="qti-pci-iframe"&&(!a?.responseIdentifier||a?.responseIdentifier===this.responseIdentifier)&&a?.method==="clickResponse"&&a?.messageId===n&&(window.removeEventListener("message",i),r())};window.addEventListener("message",i),this.sendMessageToIframe("simulateClick",{x:t,y:e,messageId:n}),setTimeout(()=>{window.removeEventListener("message",i),r()},5e3)})}async iFrameClickOnElement(t){return new Promise(e=>{let r=`click-selector-${Date.now()}`,n=i=>{let{data:s}=i;s?.source==="qti-pci-iframe"&&(!s?.responseIdentifier||s?.responseIdentifier===this.responseIdentifier)&&s?.method==="clickSelectorResponse"&&s?.messageId===r&&(window.removeEventListener("message",n),e(s.success))};window.addEventListener("message",n),this.sendMessageToIframe("clickOnSelector",{selector:t,messageId:r}),setTimeout(()=>{window.removeEventListener("message",n),e(!1)},5e3)})}async iFrameClickOnElementByText(t){return new Promise(e=>{let r=`click-text-${Date.now()}`,n=i=>{let{data:s}=i;s?.source==="qti-pci-iframe"&&(!s?.responseIdentifier||s?.responseIdentifier===this.responseIdentifier)&&s?.method==="clickTextResponse"&&s?.messageId===r&&(window.removeEventListener("message",n),e(s.success))};window.addEventListener("message",n),this.sendMessageToIframe("clickOnElementByText",{text:t,messageId:r}),setTimeout(()=>{window.removeEventListener("message",n),e(!1)},5e3)})}async iFrameSetValueElement(t,e){return new Promise(r=>{let n=`set-value-${Date.now()}`,i=s=>{let{data:a}=s;a?.source==="qti-pci-iframe"&&(!a?.responseIdentifier||a?.responseIdentifier===this.responseIdentifier)&&a?.method==="setValueResponse"&&a?.messageId===n&&(window.removeEventListener("message",i),r(a.success))};window.addEventListener("message",i),this.sendMessageToIframe("setValueElement",{selector:t,value:e,messageId:n}),setTimeout(()=>{window.removeEventListener("message",i),r(!1)},5e3)})}async iFrameGetBoundingClientRect(t){return new Promise(e=>{let r=`get-bounding-rect-${Date.now()}`,n=i=>{let{data:s}=i;s?.source==="qti-pci-iframe"&&(!s?.responseIdentifier||s?.responseIdentifier===this.responseIdentifier)&&s?.method==="getBoundingRectResponse"&&s?.messageId===r&&(window.removeEventListener("message",n),e(s.rect??null))};window.addEventListener("message",n),this.sendMessageToIframe("getBoundingRect",{selector:t,messageId:r}),setTimeout(()=>{window.removeEventListener("message",n),e(null)},5e3)})}async iFrameSetValueElementByText(t,e){return new Promise(r=>{let n=`set-value-text-${Date.now()}`,i=s=>{let{data:a}=s;a?.source==="qti-pci-iframe"&&(!a?.responseIdentifier||a?.responseIdentifier===this.responseIdentifier)&&a?.method==="setValueByTextResponse"&&a?.messageId===n&&(window.removeEventListener("message",i),r(a.success))};window.addEventListener("message",i),this.sendMessageToIframe("setValueElementByText",{text:t,value:e,messageId:n}),setTimeout(()=>{window.removeEventListener("message",i),r(!1)},5e3)})}async iFrameMousedownOnElement(t){return new Promise(e=>{let r=`mousedown-selector-${Date.now()}`,n=i=>{let{data:s}=i;s?.source==="qti-pci-iframe"&&(!s?.responseIdentifier||s?.responseIdentifier===this.responseIdentifier)&&s?.method==="mousedownSelectorResponse"&&s?.messageId===r&&(window.removeEventListener("message",n),e(s.success))};window.addEventListener("message",n),this.sendMessageToIframe("mousedownOnSelector",{selector:t,messageId:r}),setTimeout(()=>{window.removeEventListener("message",n),e(!1)},5e3)})}generateIframeContent(){let t=super.generateIframeContent(),e=`
8994
8994
  // Test helper functions for QtiPortableCustomInteractionTest
8995
8995
  // Base iframe implementation already provides PCIManager.getContent
8996
8996
 
@@ -9183,7 +9183,7 @@ CES.load();
9183
9183
  }
9184
9184
  },
9185
9185
  true
9186
- );`,r=t.lastIndexOf("</script>");return t.substring(0,r)+e+t.substring(r)}};var Wn=[{tag:"qti-portable-custom-interaction",ctor:W},{tag:"qti-portable-custom-interaction-test",ctor:Hn}];var qh=[O,q`
9186
+ );`,r=t.lastIndexOf("</script>");return t.substring(0,r)+e+t.substring(r)}};var Wo=[{tag:"qti-portable-custom-interaction",ctor:W},{tag:"qti-portable-custom-interaction-test",ctor:Ho}];var qh=[O,q`
9187
9187
  :host {
9188
9188
  display: block;
9189
9189
  }
@@ -9194,12 +9194,12 @@ CES.load();
9194
9194
  left: 50%;
9195
9195
  transform: translateX(-50%);
9196
9196
  }
9197
- `];var Qn=class extends C{static{this.styles=qh}render(){return b`<slot></slot>`}};var Ch=[O,q`
9197
+ `];var Qo=class extends C{static{this.styles=qh}render(){return b`<slot></slot>`}};var Ch=[O,q`
9198
9198
  :host {
9199
9199
  display: inline-block;
9200
9200
  position: relative;
9201
9201
  }
9202
- `];var Gn=class extends C{static{this.styles=Ch}render(){return b`<slot></slot>`}constructor(){super(),this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}dragElementHandler(t){t.preventDefault();let e=t.clientX-this.startX,r=t.clientY-this.startY;this.dragElement.style.left=this.dragElement.offsetLeft+e+"px",this.dragElement.style.top=this.dragElement.offsetTop+r+"px",this.startX=t.clientX,this.startY=t.clientY}firstUpdated(t){super.firstUpdated(t),this.dragElement=this.querySelector("qti-position-object-interaction>img"),this.startX=0,this.startY=0,this.dragElement.addEventListener("mousedown",e=>{this.startX=e.clientX,this.startY=e.clientY,document.addEventListener("mousemove",this.dragElementHandler,!0)}),document.addEventListener("mouseup",this.removeMoveListener)}removeMoveListener(){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};var Xn=[{tag:"qti-position-object-interaction",ctor:Qn},{tag:"qti-position-object-stage",ctor:Gn}];var kh="important",Fu=" !"+kh,Yn=Et(class extends ge{constructor(n){if(super(n),n.type!==qr.ATTRIBUTE||n.name!=="style"||n.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(n){return Object.keys(n).reduce((t,e)=>{let r=n[e];return r==null?t:t+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(n,[t]){let{style:e}=n.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 i=t[r];if(i!=null){this.ft.add(r);let o=typeof i=="string"&&i.endsWith(Fu);r.includes("-")||o?e.setProperty(r,o?i.slice(0,-11):i,o?kh:""):e[r]=i}}return Z}});var Eh=[O,q`
9202
+ `];var Go=class extends C{static{this.styles=Ch}render(){return b`<slot></slot>`}constructor(){super(),this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}dragElementHandler(t){t.preventDefault();let e=t.clientX-this.startX,r=t.clientY-this.startY;this.dragElement.style.left=this.dragElement.offsetLeft+e+"px",this.dragElement.style.top=this.dragElement.offsetTop+r+"px",this.startX=t.clientX,this.startY=t.clientY}firstUpdated(t){super.firstUpdated(t),this.dragElement=this.querySelector("qti-position-object-interaction>img"),this.startX=0,this.startY=0,this.dragElement.addEventListener("mousedown",e=>{this.startX=e.clientX,this.startY=e.clientY,document.addEventListener("mousemove",this.dragElementHandler,!0)}),document.addEventListener("mouseup",this.removeMoveListener)}removeMoveListener(){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};var Xo=[{tag:"qti-position-object-interaction",ctor:Qo},{tag:"qti-position-object-stage",ctor:Go}];var kh="important",ju=" !"+kh,Yo=Et(class extends ge{constructor(o){if(super(o),o.type!==qr.ATTRIBUTE||o.name!=="style"||o.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(o){return Object.keys(o).reduce((t,e)=>{let r=o[e];return r==null?t:t+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(o,[t]){let{style:e}=o.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 n=t[r];if(n!=null){this.ft.add(r);let i=typeof n=="string"&&n.endsWith(ju);r.includes("-")||i?e.setProperty(r,i?n.slice(0,-11):n,i?kh:""):e[r]=n}}return Z}});var Eh=[O,q`
9203
9203
  :host {
9204
9204
  display: block;
9205
9205
  --qti-select-point-marker-size: 1.5rem;
@@ -9234,20 +9234,20 @@ CES.load();
9234
9234
  -webkit-mask: var(--qti-select-point-icon) no-repeat center / contain;
9235
9235
  mask: var(--qti-select-point-icon) no-repeat center / contain;
9236
9236
  }
9237
- `];var Ur=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},dt=class extends D{constructor(){super(...arguments),this.maxChoices=1/0,this.minChoices=0,this.response=null,this.areaMappings=null,this._areaEntries=[],this._handleAreaMappingsChange=()=>{this.#t()},this.#e=null,this.#r=1,this.#i=1,this.#o=0,this.#n=0,this.#s=t=>{if(this.disabled)return;if(!this.#e){console.warn("No <img> element found in <qti-select-point-interaction>");return}this.#c();let e=this.#e.getBoundingClientRect(),r=(t.clientX-e.left)*this.#r,i=(t.clientY-e.top)*this.#i,o=`${r.toFixed()} ${i.toFixed()}`;this.maxChoices===1?this.response=[o]:(this.maxChoices===0||(this.response||[]).length<this.maxChoices)&&(this.response=[...this.response||[],o]),this.saveResponse(this.response)},this.#a=()=>{this.#c()}}static{this.styles=Eh}#t(){try{let t=JSON.parse(this.areaMappings||"[]");if(!Array.isArray(t)){this._areaEntries=[];return}this._areaEntries=t.filter(e=>e&&(e.shape==="circle"||e.shape==="rect")&&typeof e.coords=="string").map(e=>({shape:e.shape,coords:String(e.coords),mappedValue:Number(e.mappedValue??1),defaultValue:Number(e.defaultValue??0)}))}catch{this._areaEntries=[]}}get _effectiveAreaEntries(){let t=this.responseVariable?.areaMapping?.areaMapEntries;return t?.length?t:this._areaEntries}#e;#r;#i;#o;#n;#s;connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.#a)}#a;get responsePoints(){let t=this.response;return(Array.isArray(t)?t:t?[t]:[]).filter(r=>r).map(r=>{let[i,o]=r.split(" ").map(Number);return{x:i,y:o}})}pointPart(t,e){return"point"}renderSupplementalLayer(){return P}positionOverlayElements(t){let e=this.#e;if(e){this.#c();for(let r of t){let i=r.dataset.coord,o=r.dataset.shape;!i||!o||Re(o,i.split(",").map(s=>+s),e,r)}}}render(){let t=this.response,e=Array.isArray(t)?t:t?[t]:[];return b` <slot name="prompt"></slot>
9237
+ `];var Ur=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},dt=class extends D{constructor(){super(...arguments),this.maxChoices=1/0,this.minChoices=0,this.response=null,this.areaMappings=null,this._areaEntries=[],this._handleAreaMappingsChange=()=>{this.#t()},this.#e=null,this.#r=1,this.#n=1,this.#i=0,this.#o=0,this.#s=t=>{if(this.disabled)return;if(!this.#e){console.warn("No <img> element found in <qti-select-point-interaction>");return}this.#c();let e=this.#e.getBoundingClientRect(),r=(t.clientX-e.left)*this.#r,n=(t.clientY-e.top)*this.#n,i=`${r.toFixed()} ${n.toFixed()}`;this.maxChoices===1?this.response=[i]:(this.maxChoices===0||(this.response||[]).length<this.maxChoices)&&(this.response=[...this.response||[],i]),this.saveResponse(this.response)},this.#a=()=>{this.#c()}}static{this.styles=Eh}#t(){try{let t=JSON.parse(this.areaMappings||"[]");if(!Array.isArray(t)){this._areaEntries=[];return}this._areaEntries=t.filter(e=>e&&(e.shape==="circle"||e.shape==="rect")&&typeof e.coords=="string").map(e=>({shape:e.shape,coords:String(e.coords),mappedValue:Number(e.mappedValue??1),defaultValue:Number(e.defaultValue??0)}))}catch{this._areaEntries=[]}}get _effectiveAreaEntries(){let t=this.responseVariable?.areaMapping?.areaMapEntries;return t?.length?t:this._areaEntries}#e;#r;#n;#i;#o;#s;connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.#a)}#a;get responsePoints(){let t=this.response;return(Array.isArray(t)?t:t?[t]:[]).filter(r=>r).map(r=>{let[n,i]=r.split(" ").map(Number);return{x:n,y:i}})}pointPart(t,e){return"point"}renderSupplementalLayer(){return P}positionOverlayElements(t){let e=this.#e;if(e){this.#c();for(let r of t){let n=r.dataset.coord,i=r.dataset.shape;!n||!i||Re(i,n.split(",").map(s=>+s),e,r)}}}render(){let t=this.response,e=Array.isArray(t)?t:t?[t]:[];return b` <slot name="prompt"></slot>
9238
9238
  <point-container>
9239
- ${H(e.filter(r=>r),r=>r,(r,i)=>{let[o,s]=r.split(" ").map(Number),a=o/(this.#o||1)*100,l=s/(this.#n||1)*100;return b`
9239
+ ${H(e.filter(r=>r),r=>r,(r,n)=>{let[i,s]=r.split(" ").map(Number),a=i/(this.#i||1)*100,l=s/(this.#o||1)*100;return b`
9240
9240
  <button
9241
- part=${this.pointPart(r,i)}
9242
- style=${Yn({pointerEvents:this.maxChoices===1?"none":"auto",position:"absolute",left:`${a}%`,top:`${l}%`})}
9241
+ part=${this.pointPart(r,n)}
9242
+ style=${Yo({pointerEvents:this.maxChoices===1?"none":"auto",position:"absolute",left:`${a}%`,top:`${l}%`})}
9243
9243
  aria-label="Remove point at ${r}"
9244
9244
  ?disabled=${this.disabled}
9245
- @click=${c=>{c.stopPropagation(),this.response=(this.response||[]).filter((d,h)=>h!==i),this.saveResponse(this.response)}}
9245
+ @click=${c=>{c.stopPropagation(),this.response=(this.response||[]).filter((d,h)=>h!==n),this.saveResponse(this.response)}}
9246
9246
  ></button>
9247
9247
  `})}
9248
9248
  ${this.renderSupplementalLayer()}
9249
9249
  <slot></slot>
9250
- </point-container>`}validate(){let t=this.response?.length??0,e=this.maxChoices!==0&&Number.isFinite(this.maxChoices)&&t>this.maxChoices,r=t<this.minChoices,i=!0,o="";return e?(i=!1,o=this.dataset.maxSelectionsMessage||`Please select no more than ${this.maxChoices} ${this.maxChoices===1?"point":"points"}.`):r&&(i=!1,o=this.dataset.minSelectionsMessage||`Please select at least ${this.minChoices} ${this.minChoices===1?"point":"points"}.`),this.setInteractionValidity(i,o,this.#e??this,{suppressInline:!0}),i}reportValidity(){return super.reportValidity()}#c(){this.#o=this.#e.getAttribute("width")?parseFloat(this.#e.getAttribute("width")):this.#e.naturalWidth,this.#n=this.#e.getAttribute("height")?parseFloat(this.#e.getAttribute("height")):this.#e.naturalHeight;let t=this.#e.getBoundingClientRect();this.#r=t.width===0?1:this.#o/t.width,this.#i=t.height===0?1:this.#n/t.height}firstUpdated(){super.firstUpdated(),this.#e=this.querySelector("img"),this.#e?(this.#c(),this.#e.addEventListener("click",this.#s)):console.warn("No <img> element found in <qti-select-point-interaction>")}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("resize",this.#a),this.#e&&this.#e.removeEventListener("click",this.#s)}};Ur([p({type:Number,attribute:"max-choices"})],dt.prototype,"maxChoices",void 0);Ur([p({type:Number,attribute:"min-choices"})],dt.prototype,"minChoices",void 0);Ur([p({attribute:"response",reflect:!1,converter:{fromAttribute:n=>{let t=wa(n);return t===null?null:Array.isArray(t)?t:[t]},toAttribute:n=>xa(n)}})],dt.prototype,"response",void 0);Ur([p({attribute:"area-mappings"})],dt.prototype,"areaMappings",void 0);Ur([_()],dt.prototype,"_areaEntries",void 0);Ur([$("areaMappings")],dt.prototype,"_handleAreaMappingsChange",void 0);var Kn=[{tag:"qti-select-point-interaction",ctor:dt}];var Sh=[O,q`
9250
+ </point-container>`}validate(){let t=this.response?.length??0,e=this.maxChoices!==0&&Number.isFinite(this.maxChoices)&&t>this.maxChoices,r=t<this.minChoices,n=!0,i="";return e?(n=!1,i=this.dataset.maxSelectionsMessage||`Please select no more than ${this.maxChoices} ${this.maxChoices===1?"point":"points"}.`):r&&(n=!1,i=this.dataset.minSelectionsMessage||`Please select at least ${this.minChoices} ${this.minChoices===1?"point":"points"}.`),this.setInteractionValidity(n,i,this.#e??this,{suppressInline:!0}),n}reportValidity(){return super.reportValidity()}#c(){this.#i=this.#e.getAttribute("width")?parseFloat(this.#e.getAttribute("width")):this.#e.naturalWidth,this.#o=this.#e.getAttribute("height")?parseFloat(this.#e.getAttribute("height")):this.#e.naturalHeight;let t=this.#e.getBoundingClientRect();this.#r=t.width===0?1:this.#i/t.width,this.#n=t.height===0?1:this.#o/t.height}firstUpdated(){super.firstUpdated(),this.#e=this.querySelector("img"),this.#e?(this.#c(),this.#e.addEventListener("click",this.#s)):console.warn("No <img> element found in <qti-select-point-interaction>")}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("resize",this.#a),this.#e&&this.#e.removeEventListener("click",this.#s)}};Ur([p({type:Number,attribute:"max-choices"})],dt.prototype,"maxChoices",void 0);Ur([p({type:Number,attribute:"min-choices"})],dt.prototype,"minChoices",void 0);Ur([p({attribute:"response",reflect:!1,converter:{fromAttribute:o=>{let t=wa(o);return t===null?null:Array.isArray(t)?t:[t]},toAttribute:o=>xa(o)}})],dt.prototype,"response",void 0);Ur([p({attribute:"area-mappings"})],dt.prototype,"areaMappings",void 0);Ur([_()],dt.prototype,"_areaEntries",void 0);Ur([$("areaMappings")],dt.prototype,"_handleAreaMappingsChange",void 0);var Ko=[{tag:"qti-select-point-interaction",ctor:dt}];var Sh=[O,q`
9251
9251
  :host {
9252
9252
  display: block;
9253
9253
  --show-bounds: true;
@@ -9315,7 +9315,7 @@ CES.load();
9315
9315
  text-align: center;
9316
9316
  color: #6b7280; /* text-gray-500 */
9317
9317
  }
9318
- `];var Yi=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},xt=class extends D{constructor(){super(...arguments),this.#t=0,this.min=0,this.max=100,this.step=1}static{this.styles=Sh}#t;validate(){return!0}connectedCallback(){super.connectedCallback(),this.hasAttribute("response")||this.#e(this.min),this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}get response(){return this.#t.toString()}set response(t){if(t===null||t==="")return;let e=parseFloat(t);isNaN(e)||this.#e(e)}renderRailSupplement(){return P}#e(t){let e=this.#t;if(this.#t=Math.min(this.max,Math.max(this.min,t)),this.#t===e)return;let r=(this.#t-this.min)/(this.max-this.min)*100;this.style.setProperty("--value-percentage",`${r}%`),this._internals.setFormValue(this.value),this.saveResponse(this.response),this.requestUpdate()}render(){return b`
9318
+ `];var Kn=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},xt=class extends D{constructor(){super(...arguments),this.#t=0,this.min=0,this.max=100,this.step=1}static{this.styles=Sh}#t;validate(){return!0}connectedCallback(){super.connectedCallback(),this.hasAttribute("response")||this.#e(this.min),this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}get response(){return this.#t.toString()}set response(t){if(t===null||t==="")return;let e=parseFloat(t);isNaN(e)||this.#e(e)}renderRailSupplement(){return P}#e(t){let e=this.#t;if(this.#t=Math.min(this.max,Math.max(this.min,t)),this.#t===e)return;let r=(this.#t-this.min)/(this.max-this.min)*100;this.style.setProperty("--value-percentage",`${r}%`),this._internals.setFormValue(this.value),this.saveResponse(this.response),this.requestUpdate()}render(){return b`
9319
9319
  <slot name="prompt"></slot>
9320
9320
  <div id="slider" part="slider">
9321
9321
  <div id="bounds" part="bounds">
@@ -9325,7 +9325,7 @@ CES.load();
9325
9325
 
9326
9326
  <div id="ticks" part="ticks"></div>
9327
9327
 
9328
- <div id="rail" part="rail" @mousedown=${this.#r} @touchstart=${this.#i}>
9328
+ <div id="rail" part="rail" @mousedown=${this.#r} @touchstart=${this.#n}>
9329
9329
  <div id="knob" part="knob">
9330
9330
  <div id="value" part="value">${this.response}</div>
9331
9331
  </div>
@@ -9333,7 +9333,7 @@ CES.load();
9333
9333
  ${this.renderRailSupplement()}
9334
9334
  </div>
9335
9335
  </div>
9336
- `}#r(t){this.#o(t.pageX);let e=i=>this.#n(i.pageX),r=()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",r),this.#s()};document.addEventListener("mousemove",e),document.addEventListener("mouseup",r)}#i(t){this.#o(t.touches[0].pageX);let e=i=>this.#n(i.touches[0].pageX),r=()=>{document.removeEventListener("touchmove",e),document.removeEventListener("touchend",r),this.#s()};document.addEventListener("touchmove",e,{passive:!1}),document.addEventListener("touchend",r)}#o(t){this.#n(t)}#n(t){let e=this._rail.getBoundingClientRect(),r=t-e.left,i=Math.min(1,Math.max(0,r/e.width)),o=this.min+Math.round(i*(this.max-this.min)/this.step)*this.step;this.#e(o)}#s(){this.dispatchEvent(new Event("change",{bubbles:!0}))}};Yi([mr("#rail")],xt.prototype,"_rail",void 0);Yi([p({type:Number,attribute:"lower-bound"})],xt.prototype,"min",void 0);Yi([p({type:Number,attribute:"upper-bound"})],xt.prototype,"max",void 0);Yi([p({type:Number,attribute:"step"})],xt.prototype,"step",void 0);Yi([p({attribute:"response",reflect:!1,noAccessor:!0})],xt.prototype,"response",null);var Jn=[{tag:"qti-slider-interaction",ctor:xt}];var Ah=()=>new cc,cc=class{},ac=new WeakMap,j1=Et(class extends ye{render(n){return P}update(n,[t]){let e=t!==this.G;return e&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.G=t,this.ht=n.options?.host,this.rt(this.ct=n.element)),P}rt(n){if(this.G!==void 0)if(this.isConnected||(n=void 0),typeof this.G=="function"){let t=this.ht??globalThis,e=ac.get(t);e===void 0&&(e=new WeakMap,ac.set(t,e)),e.get(this.G)!==void 0&&this.G.call(this.ht,void 0),e.set(this.G,n),n!==void 0&&this.G.call(this.ht,n)}else this.G.value=n}get lt(){return typeof this.G=="function"?ac.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var Ih=[O,q`
9336
+ `}#r(t){this.#i(t.pageX);let e=n=>this.#o(n.pageX),r=()=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",r),this.#s()};document.addEventListener("mousemove",e),document.addEventListener("mouseup",r)}#n(t){this.#i(t.touches[0].pageX);let e=n=>this.#o(n.touches[0].pageX),r=()=>{document.removeEventListener("touchmove",e),document.removeEventListener("touchend",r),this.#s()};document.addEventListener("touchmove",e,{passive:!1}),document.addEventListener("touchend",r)}#i(t){this.#o(t)}#o(t){let e=this._rail.getBoundingClientRect(),r=t-e.left,n=Math.min(1,Math.max(0,r/e.width)),i=this.min+Math.round(n*(this.max-this.min)/this.step)*this.step;this.#e(i)}#s(){this.dispatchEvent(new Event("change",{bubbles:!0}))}};Kn([mr("#rail")],xt.prototype,"_rail",void 0);Kn([p({type:Number,attribute:"lower-bound"})],xt.prototype,"min",void 0);Kn([p({type:Number,attribute:"upper-bound"})],xt.prototype,"max",void 0);Kn([p({type:Number,attribute:"step"})],xt.prototype,"step",void 0);Kn([p({attribute:"response",reflect:!1,noAccessor:!0})],xt.prototype,"response",null);var Jo=[{tag:"qti-slider-interaction",ctor:xt}];var Ah=()=>new cc,cc=class{},ac=new WeakMap,z1=Et(class extends ye{render(o){return P}update(o,[t]){let e=t!==this.G;return e&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.G=t,this.ht=o.options?.host,this.rt(this.ct=o.element)),P}rt(o){if(this.G!==void 0)if(this.isConnected||(o=void 0),typeof this.G=="function"){let t=this.ht??globalThis,e=ac.get(t);e===void 0&&(e=new WeakMap,ac.set(t,e)),e.get(this.G)!==void 0&&this.G.call(this.ht,void 0),e.set(this.G,o),o!==void 0&&this.G.call(this.ht,o)}else this.G.value=o}get lt(){return typeof this.G=="function"?ac.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var Ih=[O,q`
9337
9337
  :host {
9338
9338
  display: inline-flex;
9339
9339
  align-items: center;
@@ -9422,7 +9422,7 @@ CES.load();
9422
9422
  :host(.qti-input-width-72) {
9423
9423
  --qti-input-width: 72;
9424
9424
  }
9425
- `];var cr=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},at=class extends D{constructor(){super(...arguments),this.inputRef=Ah(),this.response=null,this._handleValueChange=()=>{this._internals.setFormValue(this.value),this.validate()}}static{this.styles=Ih}get value(){return this.response||null}set value(t){this.response=t||null}get isInline(){return!0}validate(){if(!this._input)return!1;let t="",e=!1;return this.patternMask&&this.dataPatternmaskMessage?(this._input.setCustomValidity(""),e=this._input.checkValidity(),e||(t=this.dataPatternmaskMessage,this._input.setCustomValidity(this.dataPatternmaskMessage))):e=this._input.checkValidity(),e&&this.response===""&&(e=!1),!e&&!t&&(t=this._input.validationMessage||"Invalid value."),this.setInteractionValidity(e,t,this._input,{suppressInline:!0}),e}renderAnswer(){return b`<div part="answer" aria-hidden="true"></div>`}renderInput(){return b`<input
9425
+ `];var cr=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},at=class extends D{constructor(){super(...arguments),this.inputRef=Ah(),this.response=null,this._handleValueChange=()=>{this._internals.setFormValue(this.value),this.validate()}}static{this.styles=Ih}get value(){return this.response||null}set value(t){this.response=t||null}get isInline(){return!0}validate(){if(!this._input)return!1;let t="",e=!1;return this.patternMask&&this.dataPatternmaskMessage?(this._input.setCustomValidity(""),e=this._input.checkValidity(),e||(t=this.dataPatternmaskMessage,this._input.setCustomValidity(this.dataPatternmaskMessage))):e=this._input.checkValidity(),e&&this.response===""&&(e=!1),!e&&!t&&(t=this._input.validationMessage||"Invalid value."),this.setInteractionValidity(e,t,this._input,{suppressInline:!0}),e}renderAnswer(){return b`<div part="answer" aria-hidden="true"></div>`}renderInput(){return b`<input
9426
9426
  part="input"
9427
9427
  name="${this.responseIdentifier}"
9428
9428
  spellcheck="false"
@@ -9438,7 +9438,7 @@ CES.load();
9438
9438
  maxlength=${1e3}
9439
9439
  ?disabled="${this.disabled}"
9440
9440
  ?readonly="${this.readonly}"
9441
- />`}renderValidationMessage(){return b`<div id="validation-message" part="message" role="alert" style="display:none;"></div>`}render(){return b` ${this.renderAnswer()} ${this.renderInput()} ${this.renderValidationMessage()} `}textChanged(t){if(this.disabled||this.readonly)return;let e=t.target;this.response!==e.value&&(this.value=e.value,this.saveResponse(e.value))}reportValidity(){return this.validate(),super.reportValidity()}reset(){this.response=""}};cr([p({type:Number,attribute:"expected-length"})],at.prototype,"expectedLength",void 0);cr([p({type:String,attribute:"pattern-mask"})],at.prototype,"patternMask",void 0);cr([p({type:String,attribute:"placeholder-text"})],at.prototype,"placeholderText",void 0);cr([p({type:String,attribute:"data-patternmask-message"})],at.prototype,"dataPatternmaskMessage",void 0);cr([p({type:String,attribute:"response",reflect:!1})],at.prototype,"response",void 0);cr([mr("input")],at.prototype,"_input",void 0);cr([$("response",{waitUntilFirstUpdate:!0})],at.prototype,"_handleValueChange",void 0);var Zn=[{tag:"qti-text-entry-interaction",ctor:at}];var _h=[O,q`
9441
+ />`}renderValidationMessage(){return b`<div id="validation-message" part="message" role="alert" style="display:none;"></div>`}render(){return b` ${this.renderAnswer()} ${this.renderInput()} ${this.renderValidationMessage()} `}textChanged(t){if(this.disabled||this.readonly)return;let e=t.target;this.response!==e.value&&(this.value=e.value,this.saveResponse(e.value))}reportValidity(){return this.validate(),super.reportValidity()}reset(){this.response=""}};cr([p({type:Number,attribute:"expected-length"})],at.prototype,"expectedLength",void 0);cr([p({type:String,attribute:"pattern-mask"})],at.prototype,"patternMask",void 0);cr([p({type:String,attribute:"placeholder-text"})],at.prototype,"placeholderText",void 0);cr([p({type:String,attribute:"data-patternmask-message"})],at.prototype,"dataPatternmaskMessage",void 0);cr([p({type:String,attribute:"response",reflect:!1})],at.prototype,"response",void 0);cr([mr("input")],at.prototype,"_input",void 0);cr([$("response",{waitUntilFirstUpdate:!0})],at.prototype,"_handleValueChange",void 0);var Zo=[{tag:"qti-text-entry-interaction",ctor:at}];var _h=[O,q`
9442
9442
  :host {
9443
9443
  display: block;
9444
9444
  margin: 1em 0;
@@ -9452,7 +9452,7 @@ CES.load();
9452
9452
  <slot name="prompt"></slot>
9453
9453
  <input type="file" @change="${this.#r}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" />
9454
9454
  </div>
9455
- `}async#r(t){let e=t.target;e.files&&e.files.length>0&&(this.#t=e.files[0],this.#e=await this.#i(this.#t),this.saveResponse(this.#e),this.dispatchEvent(new CustomEvent("qti-interaction-response",{detail:{response:this.#e}})))}#i(t){return new Promise((e,r)=>{let i=new FileReader;i.onload=()=>e(i.result),i.onerror=()=>r(i.error),i.readAsDataURL(t)})}};var es=[{tag:"qti-upload-interaction",ctor:ts}];var Th=[...$d,...In,..._n,...Tn,...On,...Pn,...Mn,...Dn,...Nn,...$n,...Ln,...Vn,...zn,...jn,...Bn,...Un,...Wn,...Xn,...Kn,...Jn,...Zn,...es];for(let{tag:n,ctor:t}of Th)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of In)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of _n)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Tn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of On)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Pn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Mn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Dn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Nn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of $n)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Ln)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Vn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of zn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of jn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Bn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Un)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Wn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Xn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Kn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Jn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of Zn)customElements.get(n)||customElements.define(n,t);for(let{tag:n,ctor:t}of es)customElements.get(n)||customElements.define(n,t);var bD=async n=>{let t=n.substring(0,n.lastIndexOf("/")),e=await Ml().load(`${n}`).then(a=>a.assessmentTest()),r=await Ir().load(`${t}/${e.href}`).then(a=>a.htmlDoc()),i=await Ir().load(`${t}/${e.href}`).then(a=>a.items()),o=`${t}/${e.href}`,s=`${t}/${e.href.substring(0,e.href.lastIndexOf("/"))}`;return{testHTMLDoc:r,testURI:s,testURL:o,items:i,testIdentifier:e.identifier}},yD=async n=>jt().load(n).then(t=>t.htmlDoc().firstElementChild);var rs=class extends Bu(mt){calculate(){return this.calculateChildren(Array.from(this.children))}};function Bu(n){return class extends n{calculateChildren(e){return e.map(i=>{let o=i;if(!o.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let s=o.calculate(),a=!1;if(typeof s=="string")if(s==="true")a=!0;else if(s==="false")a=!1;else return console.error("unexpected val in qti-or, expected boolean"),null;else typeof s=="boolean"&&(a=s);return a}).every(i=>typeof i=="boolean"&&i)}}}var Rh=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Hr=class extends A{constructor(){super(...arguments),this.min=0,this.max=1/0}getResult(){let t=this.getVariables();if(!t||t.length===0)return console.error("qti-any-n requires at least one child expression"),null;if(this.min<0||this.max<this.min)return console.error("qti-any-n requires 0 <= min <= max"),null;let e=0;for(let r of t){if(r.cardinality!=="single"||Array.isArray(r.value))return console.error("qti-any-n requires single cardinality boolean expressions"),null;if(r.baseType!=="boolean")return console.error("qti-any-n requires boolean base-type"),null;if(r.value===null||r.value===void 0)return null;r.value==="true"&&e++}return e>=this.min&&e<=this.max}};Rh([p({type:Number})],Hr.prototype,"min",void 0);Rh([p({type:Number})],Hr.prototype,"max",void 0);var Uu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ki=class extends A{constructor(){super(...arguments),this.baseType="string"}getResult(){return this.textContent.trim()}};Uu([p({type:String,attribute:"base-type"})],Ki.prototype,"baseType",void 0);var is=class extends A{getResult(){if(this.children?.length!==1)return console.error("qti-container-size must have exactly one child expression"),0;let t=this.getVariables();if(!t||t?.length===0)return 0;let e=t[0];return e.value===null||e.value===void 0?0:e.cardinality!=="multiple"&&e.cardinality!=="ordered"?(console.error("qti-container-size requires multiple or ordered cardinality"),0):Array.isArray(e.value)?e.value.length:(console.error("qti-container-size: expected array value for multiple/ordered cardinality"),0)}};var os=class extends mt{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 i=e.value,o=r.value;return i.filter(l=>o.includes(l)).length>0}else if(e.baseType==="directedPair"&&r.baseType==="directedPair"&&e.cardinality==="single"){let i=e.value;return r.value.includes(i)}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}};var ns=class extends A{get interpretation(){return this.getAttribute("interpretation")||""}getResult(){let t=this.getAttribute("identifier")||"",e=this.context.variables.find(r=>r.identifier===t)||null;return e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};var lc=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},lr=class extends A{constructor(){super(...arguments),this.identifier=""}getResult(){if(!this.identifier)return console.error("qti-default requires an identifier attribute"),null;let t=this.identifier.split("."),e=null,r;if(t.length===2)e=t[0],r=t[1];else if(t.length===1)r=t[0];else return console.error("qti-default: invalid identifier format"),null;if(e){let o=this._testContext.items.find(a=>a.identifier===e);if(console.debug(`itemContext: ${JSON.stringify(o)}`),!this._testContext||!o)return console.warn(`qti-default: item "${e}" not found in test context`),null;let s=this._testContext.items.find(a=>a.identifier===e)?.variables.find(a=>a.identifier===r);return s?s.defaultValue||null:(console.warn(`qti-default: variable "${r}" not found in item "${e}"`),null)}if(!this.context?.variables)return console.warn("qti-default: no variables found in item context"),null;let i=this.context.variables.find(o=>o.identifier===r);return i?i.defaultValue||null:(console.warn(`qti-default: variable "${r}" not found in item context`),null)}};lc([p({type:String})],lr.prototype,"identifier",void 0);lc([T({context:j,subscribe:!0}),_()],lr.prototype,"context",void 0);lc([_(),T({context:ot,subscribe:!0})],lr.prototype,"_testContext",void 0);var ss=class extends A{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return e.cardinality!=="single"||!Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),null):t[0].baseType!==t[1].baseType?(console.error("The baseType of the two variables is different"),null):r.value.filter(o=>!e.value.includes(o))}return null}};var as=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length!==2?(console.warn("qti-divide: expected exactly 2 numeric values"),null):t[1]===0?(console.warn("qti-divide: division by zero"),null):t[0]/t[1]}#t(t){let e=[];for(let r of t){if(!r)continue;let i=o=>{if(o==null)return;let s=parseFloat(o.toString());if(Number.isNaN(s)){console.warn("qti-divide: non-numeric value encountered");return}e.push(s)};if(Array.isArray(r.value)){r.value.forEach(o=>i(o));continue}i(r.value)}return e}};var cs=class extends A{getResult(){let t=this.#t();return t?t[0]>=t[1]:null}#t(){let t=this.getVariables();if(t.length!==2)return console.error("qti-duration-gte requires exactly 2 duration expressions"),null;let e=t.map(r=>this.#e(r));return e.some(r=>r===null)?null:e}#e(t){if(t.cardinality!=="single"||Array.isArray(t.value))return console.error("qti-duration-gte requires single cardinality"),null;if(t.baseType!=="duration")return console.error("qti-duration-gte requires duration base-type"),null;if(t.value===null||t.value===void 0)return null;let e=Number.parseFloat(t.value.toString());return Number.isNaN(e)?(console.error(`qti-duration-gte requires duration values expressed in seconds, got "${t.value.toString()}"`),null):e}};var ls=class extends A{getResult(){let t=this.#t();return t?t[0]<t[1]:null}#t(){let t=this.getVariables();if(t.length!==2)return console.error("qti-duration-lt requires exactly 2 duration expressions"),null;let e=t.map(r=>this.#e(r));return e.some(r=>r===null)?null:e}#e(t){if(t.cardinality!=="single"||Array.isArray(t.value))return console.error("qti-duration-lt requires single cardinality"),null;if(t.baseType!=="duration")return console.error("qti-duration-lt requires duration base-type"),null;if(t.value===null||t.value===void 0)return null;let e=Number.parseFloat(t.value.toString());return Number.isNaN(e)?(console.error(`qti-duration-lt requires duration values expressed in seconds, got "${t.value.toString()}"`),null):e}};var Hu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Ji=class extends A{constructor(){super(...arguments),this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let e=parseInt(this.getAttribute("figures")||"0");return isNaN(e)?(console.error("figures attribute is not a number"),null):e<0?(console.error("figures attribute is negative"),null):e<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):e}getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(this.roundingMode===null)return null;if(e.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(e.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti equal"),!1;switch(t[0].baseType){case"integer":case"float":{let i=parseFloat(e.value),o=parseFloat(r.value);if(!isNaN(i)&&!isNaN(o))return this.roundingMode==="significantFigures"?i.toPrecision(this.figures)===o.toPrecision(this.figures):Math.round(i*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: ${i}, ${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}};Hu([p({type:String})],Ji.prototype,"roundingMode",void 0);var Wu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Zi=class extends A{constructor(){super(...arguments),this.toleranceMode="exact"}getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return!e||!r?null:this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):e.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(e.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):e.value===null||r.value===null||e.value===void 0||r.value===void 0?null:J.compareSingleValues(e.value,r.value,e.baseType)}return console.error("unexpected number of children in qti-equal"),null}};Wu([p({type:String})],Zi.prototype,"toleranceMode",void 0);var ds=class extends A{getResult(){let t=this.getAttribute("field-identifier");if(!t)throw new Error("field-identifier attribute is required");if(Array.from(this.children).length!==1)throw new Error("qti-field-value must have exactly one child expression");let r=this.getVariables()[0];if(r.baseType!=="record"||r.value===null)throw new Error("qti-field-value child expression must return a record");let i=r.value[t];if(i===void 0)throw new Error(`Field "${t}" not found in record`);return i}};var hs=class extends A{getResult(){if(this.children.length===0)return console.error("qti-gcd must have at least one child expression"),null;let t=this.getVariables();if(!t||t.length===0)return null;let e=[];for(let r of t){if(r.baseType!=="integer")return console.error("qti-gcd requires integer base-type"),null;if(r.value===null||r.value===void 0)return null;if(r.cardinality==="single"){if(Array.isArray(r.value))return console.error("qti-gcd unexpected array value for single cardinality"),null;let i=parseInt(r.value,10);if(isNaN(i))return console.error("qti-gcd non-numerical value"),null;e.push(i)}else if(r.cardinality==="multiple"||r.cardinality==="ordered"){if(!Array.isArray(r.value))return console.error("qti-gcd expected array value for multiple/ordered cardinality"),null;for(let i of r.value){if(i==null)return null;let o=parseInt(i,10);if(isNaN(o))return console.error("qti-gcd non-numerical value"),null;e.push(o)}}else return console.error("qti-gcd unsupported cardinality"),null}return e.length===0?null:this.#t(e)}#t(t){if(t.length===0)return 0;if(t.length===1)return Math.abs(t[0]);let e=Math.abs(t[0]);for(let r=1;r<t.length&&(e=this.#e(e,Math.abs(t[r])),e!==1);r++);return e}#e(t,e){if(t===0&&e===0)return 0;if(t===0)return e;if(e===0)return t;for(;e!==0;){let r=e;e=t%e,t=r}return t}};var ps=class extends A{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if((e.baseType==="integer"||e.baseType==="float")&&(r.baseType==="integer"||r.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}};var us=class extends mt{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return(e.baseType==="integer"||e.baseType==="float")&&(r.baseType==="integer"||r.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}};var Qu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},to=class extends A{getResult(){if(!this.n)return console.error('qti-index: missing required attribute "n"'),null;if(this.children.length!==1)return console.error("qti-index: must have exactly one child container element"),null;let t=this.getVariables()[0];if(!t)return console.error("qti-index: missing container"),null;let e;if(!isNaN(Number(this.n)))e=Number(this.n);else{let r=this.#t(this.n);if(r===null)return console.error(`qti-index: variable "${this.n}" is not a valid number`),null;e=Number(r)}if(e<=0||!Number.isInteger(e))return console.error("qti-index: index must be a positive integer"),null;if(t.cardinality==="ordered"){let r=Array.isArray(t.value)?t.value:[t.value];return t.value===null||e>r.length?null:r[e-1]}else return console.error("qti-index: child must have ordered cardinality"),null}#t(t){let e=this.context.variables.find(r=>r.identifier===t)?.value;return e===null||isNaN(Number(e))?null:Number(e)}};Qu([p({type:String})],to.prototype,"n",void 0);var Oh=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Wr=class extends A{constructor(){super(...arguments),this.shape="",this.coords=""}getResult(){let t=this.getVariables();if(t.length!==1)return console.error("qti-inside requires exactly one point expression"),null;let e=t[0];if(e.cardinality!=="single"||Array.isArray(e.value))return console.error("qti-inside requires single cardinality"),null;if(e.value===null||e.value===void 0)return null;if(!this.shape||!this.coords)return console.error("qti-inside requires shape and coords attributes"),null;let r=this.#t(e.value.toString()),i=this.#e(this.coords);if(!r||i.length===0)return null;switch(this.shape.toLowerCase()){case"circle":return this.#r(r,i);case"rect":return this.#i(r,i);case"ellipse":return this.#o(r,i);case"poly":case"polygon":return this.#n(r,i);default:return console.error(`qti-inside does not support shape "${this.shape}"`),null}}#t(t){let e=t.split(/[,\s]+/).map(o=>o.trim()).filter(Boolean);if(e.length!==2)return console.error('qti-inside requires a point value formatted as "x y" or "x,y"'),null;let r=Number.parseFloat(e[0]),i=Number.parseFloat(e[1]);return Number.isNaN(r)||Number.isNaN(i)?(console.error("qti-inside requires numeric point coordinates"),null):{x:r,y:i}}#e(t){let e=t.split(",").map(r=>r.trim()).filter(Boolean).map(r=>Number.parseFloat(r));return e.some(r=>Number.isNaN(r))?(console.error("qti-inside requires numeric coords"),[]):e}#r(t,e){if(e.length!==3)return console.error("qti-inside circle requires x,y,r"),null;let[r,i,o]=e;return(t.x-r)**2+(t.y-i)**2<=o**2}#i(t,e){if(e.length!==4)return console.error("qti-inside rect requires left,top,right,bottom"),null;let[r,i,o,s]=e,a=Math.min(r,o),l=Math.max(r,o),c=Math.min(i,s),d=Math.max(i,s);return t.x>=a&&t.x<=l&&t.y>=c&&t.y<=d}#o(t,e){if(e.length!==4)return console.error("qti-inside ellipse requires centerX,centerY,radiusX,radiusY"),null;let[r,i,o,s]=e;return o===0||s===0?!1:(t.x-r)**2/o**2+(t.y-i)**2/s**2<=1}#n(t,e){if(e.length<6||e.length%2!==0)return console.error("qti-inside polygon requires at least 3 coordinate pairs"),null;let r=!1;for(let i=0,o=e.length-2;i<e.length;i+=2){let s=e[i],a=e[i+1],l=e[o],c=e[o+1];a>t.y!=c>t.y&&t.x<(l-s)*(t.y-a)/(c-a||Number.EPSILON)+s&&(r=!r),o=i}return r}};Oh([p({type:String})],Wr.prototype,"shape",void 0);Oh([p({type:String})],Wr.prototype,"coords",void 0);var ms=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length!==2?(console.error("qti-integer-divide requires exactly 2 integer values"),null):t[1]===0?(console.error("qti-integer-divide: division by zero"),null):Math.floor(t[0]/t[1])}#t(t){let e=[];for(let r of t){if(r.baseType!=="integer")return console.error("qti-integer-divide requires integer base-type"),[];if(r.cardinality!=="single"||Array.isArray(r.value))return console.error("qti-integer-divide requires single cardinality"),[];if(r.value===null||r.value===void 0)return[];let i=Number.parseInt(r.value,10);if(Number.isNaN(i))return console.error("qti-integer-divide requires integer values"),[];e.push(i)}return e}};var fs=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length!==2?(console.error("qti-integer-modulus requires exactly 2 integer values"),null):t[1]===0?(console.error("qti-integer-modulus: division by zero"),null):t[0]%t[1]}#t(t){let e=[];for(let r of t){if(r.baseType!=="integer")return console.error("qti-integer-modulus requires integer base-type"),[];if(r.cardinality!=="single"||Array.isArray(r.value))return console.error("qti-integer-modulus requires single cardinality"),[];if(r.value===null||r.value===void 0)return[];let i=Number.parseInt(r.value,10);if(Number.isNaN(i))return console.error("qti-integer-modulus requires integer values"),[];e.push(i)}return e}};var gs=class extends A{getResult(){let t=this.getVariables();if(t.length!==1)return console.error("qti-integer-to-float requires exactly one child expression"),null;let e=t[0];if(e.baseType!=="integer")return console.error("qti-integer-to-float requires integer base-type"),null;if(e.cardinality!=="single"||Array.isArray(e.value))return console.error("qti-integer-to-float requires single cardinality"),null;if(e.value===null||e.value===void 0)return null;let r=Number.parseInt(e.value,10);return Number.isNaN(r)?(console.error("qti-integer-to-float requires an integer value"),null):r}};var bs=class extends A{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}};var ys=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length===0?(console.error("qti-lcm requires at least one integer value"),null):t.reduce((e,r)=>this.#r(e,r))}#t(t){let e=[];for(let r of t){if(r.baseType!=="integer")return console.error("qti-lcm requires integer base-type"),[];if(r.value===null||r.value===void 0)return[];if(r.cardinality==="single"){if(Array.isArray(r.value))return console.error("qti-lcm unexpected array value for single cardinality"),[];let i=Number.parseInt(r.value,10);if(Number.isNaN(i))return console.error("qti-lcm requires integer values"),[];e.push(i);continue}if(r.cardinality!=="multiple"&&r.cardinality!=="ordered")return console.error("qti-lcm unsupported cardinality"),[];if(!Array.isArray(r.value))return console.error("qti-lcm expected array value for container cardinality"),[];for(let i of r.value){let o=Number.parseInt(i,10);if(Number.isNaN(o))return console.error("qti-lcm requires integer values"),[];e.push(o)}}return e}#e(t,e){let r=Math.abs(t),i=Math.abs(e);for(;i!==0;){let o=r%i;r=i,i=o}return r}#r(t,e){return t===0||e===0?0:Math.abs(t*e/this.#e(t,e))}};var ct=class extends C{render(){return b`<slot></slot>`}process(){throw new Error("Not implemented")}};var Ph=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Qr=class extends ct{get childExpression(){return this.firstElementChild}process(){let t=this.getAttribute("identifier"),e=this.context.variables.find(i=>i.identifier===t)||null,r;return e.interpolationTable&&(r=e.interpolationTable.get(parseFloat(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:Ct(r)}})),r)}};Ph([p({type:String})],Qr.prototype,"identifier",void 0);Ph([T({context:j,subscribe:!0}),_()],Qr.prototype,"context",void 0);var vs=class extends A{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if((e.baseType==="integer"||e.baseType==="float")&&(r.baseType==="integer"||r.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}};var ws=class extends mt{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return(e.baseType==="integer"||e.baseType==="float")&&(r.baseType==="integer"||r.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}};var Gu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},eo=class extends A{getResult(){let t=this.context.variables.find(s=>s.identifier===this.identifier);if(!t)return console.warn(`Response ${this.identifier} cannot be found`),null;let e=t.areaMapping;if(!e)return console.warn(`Area mapping not found for response ${this.identifier}`),null;let r=Array.isArray(t.value)?t.value:[t.value];if(!r||r.length===0)return console.warn(`No candidate responses for response ${this.identifier}`),null;let i=0,o=new Set;for(let s of r)for(let a of e.areaMapEntries){if(o.has(a.coords))continue;J.isPointInArea(s,`${a.shape},${a.coords}`,t.baseType)&&(i+=a.mappedValue??0,o.add(a.coords))}return o.size<r.length&&(i+=e.defaultValue),e.lowerBound!=null&&(i=Math.max(e.lowerBound,i)),e.upperBound!=null&&(i=Math.min(e.upperBound,i)),i}};Gu([p({type:String})],eo.prototype,"identifier",void 0);var Xu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ro=class extends A{getResult(){let t=this.context.variables.find(o=>o.identifier===this.identifier);if(!t||!t.mapping)return console.error(`Response ${this.identifier} can not be found`),null;let e=t.mapping,r=Array.isArray(t.value)?t.value:[t.value],i=0;for(let o of r){let s=e.mapEntries.filter(l=>t.baseType==="string"&&!l.caseSensitive?J.compareSingleValues(l.mapKey.toLowerCase(),o.toLowerCase(),t.baseType):J.compareSingleValues(l.mapKey,o,t.baseType)),a=s.reduce((l,c)=>l.mappedValue>c.mappedValue?l:c,s.length>0?s[0]:{mapKey:null,mappedValue:null});a===null||a.mappedValue==null?i+=e.defaultValue:i+=a.mappedValue}return e?.lowerBound!==null&&e?.lowerBound!==void 0&&(i=Math.max(e.lowerBound,i)),e?.upperBound!==null&&e?.upperBound!==void 0&&(i=Math.min(e.upperBound,i)),i}};Xu([p({type:String})],ro.prototype,"identifier",void 0);var xs=class n extends A{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return n.match(e,r)}return console.error("unexpected number of children in match"),null}static match(t,e){if(t.value===null)return!1;switch(e.cardinality){case"single":return Array.isArray(t.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):J.compareSingleValues(t.value?.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 r=0;r<t.value.length;r++)if(!J.compareSingleValues(e.value[r],t.value[r],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 r=0;for(let i of e.value){let o=null,s=[...t.value];for(let a of s)if(J.compareSingleValues(i,a,e.baseType)){o=a;break}if(o!==null)s.splice(s.indexOf(o),1);else return!1;r++}return!0}default:return console.error("unexpected cardinality in qti match"),!1}}};var Yu=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},io=class extends A{constructor(){super(...arguments),this.name=""}getResult(){if(!this.name)return console.error("qti-math-operator requires a name attribute"),null;let t=this.getVariables();if(!t||t.length===0)return null;let e=[];for(let r of t){if(r.cardinality!=="single")return console.error("qti-math-operator requires single cardinality"),null;if(Array.isArray(r.value))return console.error("qti-math-operator unexpected array value for single cardinality"),null;if(r.value===null||r.value===void 0)return null;if(r.baseType!=="integer"&&r.baseType!=="float")return console.error("qti-math-operator requires numerical base-type"),null;let i=parseFloat(r.value);if(isNaN(i))return console.error("qti-math-operator non-numerical value"),null;e.push(i)}return this.#t(this.name,e)}#t(t,e){try{switch(t.toLowerCase()){case"sin":return e.length!==1?null:Math.sin(e[0]);case"cos":return e.length!==1?null:Math.cos(e[0]);case"tan":return e.length!==1?null:Math.tan(e[0]);case"asin":return e.length!==1||e[0]<-1||e[0]>1?null:Math.asin(e[0]);case"acos":return e.length!==1||e[0]<-1||e[0]>1?null:Math.acos(e[0]);case"atan":return e.length!==1?null:Math.atan(e[0]);case"sinh":return e.length!==1?null:Math.sinh(e[0]);case"cosh":return e.length!==1?null:Math.cosh(e[0]);case"tanh":return e.length!==1?null:Math.tanh(e[0]);case"log":return e.length!==1||e[0]<=0?null:Math.log(e[0]);case"ln":return e.length!==1||e[0]<=0?null:Math.log(e[0]);case"log10":return e.length!==1||e[0]<=0?null:Math.log10(e[0]);case"exp":return e.length!==1?null:Math.exp(e[0]);case"abs":return e.length!==1?null:Math.abs(e[0]);case"sqrt":return e.length!==1||e[0]<0?null:Math.sqrt(e[0]);case"signum":return e.length!==1?null:Math.sign(e[0]);case"floor":return e.length!==1?null:Math.floor(e[0]);case"ceil":return e.length!==1?null:Math.ceil(e[0]);case"round":return e.length!==1?null:Math.round(e[0]);case"atan2":return e.length!==2?null:Math.atan2(e[0],e[1]);case"pow":{if(e.length!==2)return null;let r=e[0],i=e[1];return r===0&&i<=0||r<0&&!Number.isInteger(i)?null:Math.pow(r,i)}case"log_base":{if(e.length!==2)return null;let r=e[0],i=e[1];return r<=0||i<=0||i===1?null:Math.log(r)/Math.log(i)}case"mod":return e.length!==2||e[1]===0?null:e[0]%e[1];case"max":return e.length<1?null:Math.max(...e);case"min":return e.length<1?null:Math.min(...e);default:return console.error(`qti-math-operator: unknown operation "${t}"`),null}}catch(r){return console.error(`qti-math-operator: error performing operation "${t}":`,r),null}}};Yu([p({type:String})],io.prototype,"name",void 0);var qs=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length===0?(console.warn("qti-max: no numeric values provided"),null):Math.max(...t)}#t(t){let e=[];for(let r of t){if(!r)continue;let i=o=>{if(o==null)return;let s=parseFloat(o.toString());if(Number.isNaN(s)){console.warn("qti-max: non-numeric value encountered");return}e.push(s)};if(Array.isArray(r.value)){r.value.forEach(o=>i(o));continue}i(r.value)}return e}};var Cs=class extends A{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||e.baseType==="integer"&&r.baseType==="float"||e.baseType==="float"&&r.baseType==="integer"||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 i=e.value;return r.value.includes(i)}};var ks=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length===0?(console.warn("qti-min: no numeric values provided"),null):Math.min(...t)}#t(t){let e=[];for(let r of t){if(!r)continue;let i=o=>{if(o==null)return;let s=parseFloat(o.toString());if(Number.isNaN(s)){console.warn("qti-min: non-numeric value encountered");return}e.push(s)};if(Array.isArray(r.value)){r.value.forEach(o=>i(o));continue}i(r.value)}return e}};var Es=class extends A{getResult(){console.debug("qti-multiple getResult called",this.innerHTML);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}};var Ss=class extends A{render(){return b`${super.render()}`}getResult(){return!this.firstElementChild.calculate()}};var As=class extends A{getResult(){return null}};var Is=class extends mt{getResult(){return Array.from(this.children).map(e=>{let r=e;if(!r.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let i=r.calculate(),o=!1;if(typeof i=="string")if(i==="true")o=!0;else if(i==="false")o=!1;else return console.error("unexpected val in qti-or, expected boolean"),null;else typeof i=="boolean"&&(o=i);return o}).some(e=>typeof e=="boolean"&&e)}};var _s=class extends A{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}};var Ts=class extends C{render(){return b`<slot></slot>`}process(){let t=this.getSubRules();for(let e=0;e<t.length;e++)t[e].process()}},Gr=class extends Ts{shouldProcess(){return!0}getSubRules(){return[...this.children]}},Xr=class extends Ts{shouldProcess(){return this.firstElementChild.calculate()}getSubRules(){let t=[];for(let e=1;e<this.children.length;e++)t.push(this.children[e]);return t}},Yr=class extends ct{render(){return b`<slot></slot>`}process(){let t=[...this.children];for(let e of t)if(e.shouldProcess()){e.process();return}}};var Rs=class extends Yr{};var Kr=class extends Xr{};var Os=class extends Kr{};var Ps=class extends Gr{};var Ku=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},oo=class extends A{constructor(){super(...arguments),this.pattern=""}getResult(){let t=this.getVariables();if(t.length!==1)return console.error("qti-pattern-match requires exactly one child expression"),null;if(!this.pattern)return console.error("qti-pattern-match requires a pattern attribute"),null;let e=t[0];if(e.cardinality!=="single"||Array.isArray(e.value))return console.error("qti-pattern-match requires single cardinality"),null;if(e.value===null||e.value===void 0)return null;try{return new RegExp(this.pattern).test(e.value.toString())}catch(r){return console.error("qti-pattern-match requires a valid regular expression",r),null}}};Ku([p({type:String})],oo.prototype,"pattern",void 0);var Ms=class extends A{getResult(){if(this.children.length!==2)return console.error("qti-power must have exactly two child expressions"),null;let t=this.getVariables();if(!t||t.length!==2)return null;let[e,r]=t;if(e.cardinality!=="single"||r.cardinality!=="single")return console.error("qti-power requires single cardinality for both expressions"),null;if(Array.isArray(e.value)||Array.isArray(r.value))return console.error("qti-power unexpected array value for single cardinality"),null;if(e.value===null||e.value===void 0||r.value===null||r.value===void 0)return null;if(e.baseType!=="integer"&&e.baseType!=="float"||r.baseType!=="integer"&&r.baseType!=="float")return console.error("qti-power requires numerical base-types"),null;let i=parseFloat(e.value),o=parseFloat(r.value);if(isNaN(i)||isNaN(o))return console.error("qti-power: non-numerical values encountered"),null;if(i===0&&o<=0||i<0&&!Number.isInteger(o))return null;let s;try{s=Math.pow(i,o)}catch(a){return console.error("qti-power: error calculating power:",a),null}if(isNaN(s))return null;if(s===1/0||s===-1/0)return s;if(!isFinite(s)||Math.abs(s)>Number.MAX_VALUE||s!==0&&Math.abs(s)<Number.MIN_VALUE)return null;if(isFinite(s)&&s!==0){let a=Math.floor(Math.log10(Math.abs(s))),l=Math.max(0,14-a),c=Math.pow(10,l);s=Math.round(s*c)/c}return s}};var Ju=/%(?:(%)|([-+ 0#]*)(\d+)?(?:\.(\d+))?([diuoxXfFeEgGsc]))/g;function Zu(n){return n.replace(/e([+-])(\d)$/,"e$10$2")}function no(n,t){return Zu(t===void 0?n.toExponential():n.toExponential(t))}function Mh(n){let[t,e]=n.split(/e/i),r=t.includes(".")?t.replace(/\.?0+$/,""):t,i=e===void 0?"":`e${e}`;return`${r}${i}`}function Dh(n,t){let e=t===0?1:t,r=n===0?0:Math.floor(Math.log10(n));return r<-4||r>=e?Mh(no(n,e-1)):Mh(n.toFixed(Math.max(0,e-1-r)))}function tm(n,t,e,r){if(n==="s"||n==="c"){let c=n==="c"?r.slice(0,1):r;return e===void 0?c:c.slice(0,e)}let i=Number(r);if(r.trim()===""||!Number.isFinite(i))return r;let o=Math.abs(i),s,a=i<0;switch(n){case"d":case"i":s=String(Math.trunc(o));break;case"u":s=String(Math.trunc(o)),a=!1;break;case"o":s=`${t.includes("#")?"0":""}${Math.trunc(o).toString(8)}`;break;case"x":s=`${t.includes("#")?"0x":""}${Math.trunc(o).toString(16)}`;break;case"X":s=`${t.includes("#")?"0X":""}${Math.trunc(o).toString(16).toUpperCase()}`;break;case"f":case"F":s=o.toFixed(e??6);break;case"e":s=no(o,e??6);break;case"E":s=no(o,e??6).toUpperCase();break;case"g":s=Dh(o,e??6);break;case"G":s=Dh(o,e??6).toUpperCase();break;default:return r}return`${a?"-":t.includes("+")?"+":t.includes(" ")?" ":""}${s}`}function em(n,t,e){if(n.length>=e)return n;let r=e-n.length;if(t.includes("-"))return`${n}${" ".repeat(r)}`;if(t.includes("0")){let[,i,o]=/^([-+ ]?)(.*)$/.exec(n);return`${i}${"0".repeat(r)}${o}`}return`${" ".repeat(r)}${n}`}function Nh(n,t){return n.replace(Ju,(e,r,i,o,s,a)=>r?"%":em(tm(a,i??"",s===void 0?void 0:Number(s),t),i??"",o===void 0?0:Number(o)))}var le=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ht=class extends C{constructor(){super(...arguments),this.base=10,this.powerForm=!1,this.delimiter=";",this.mappingIndicator="="}render(){let t=this.context?.variables.find(r=>r.identifier===this.identifier),e=t?this.#t(t):null;return e===null?P:b`${e}`}#t(t){let e=t.value;if(e==null)return null;if(Array.isArray(e)){if(e.length===0)return null;if(this.index!==void 0){let r=e[this.index-1];return r==null?null:this.#e(r,t.baseType)}return e.map(r=>this.#e(r,t.baseType)).join(this.delimiter)}if(typeof e=="object"){let r=e;if(this.field!==void 0){let o=r[this.field];return o==null?null:this.#e(o,t.baseType)}let i=Object.entries(r).filter(([,o])=>o!=null);return i.length===0?null:i.map(([o,s])=>`${o}${this.mappingIndicator}${this.#e(s,t.baseType)}`).join(this.delimiter)}return this.#e(e,t.baseType)}#e(t,e){let r=Array.isArray(t)?t.join(" "):String(t);if(this.format)return Nh(this.format,r);if(e==="integer"&&this.base!==10){let i=Number.parseInt(r,10);if(Number.isFinite(i))return i.toString(this.base)}if(this.powerForm){let i=Number(r);if(r.trim()!==""&&Number.isFinite(i))return no(i)}return r}calculate(){return this.context.variables.find(e=>e.identifier===this.identifier)||null}};le([p({type:String})],ht.prototype,"identifier",void 0);le([p({type:String})],ht.prototype,"format",void 0);le([p({type:Number})],ht.prototype,"base",void 0);le([p({type:Number})],ht.prototype,"index",void 0);le([p({type:Boolean,attribute:"power-form"})],ht.prototype,"powerForm",void 0);le([p({type:String})],ht.prototype,"field",void 0);le([p({type:String})],ht.prototype,"delimiter",void 0);le([p({type:String,attribute:"mapping-indicator"})],ht.prototype,"mappingIndicator",void 0);le([T({context:j,subscribe:!0}),_()],ht.prototype,"context",void 0);var Ds=class extends A{getResult(){return this.getVariables().reduce((r,i)=>{if(i.baseType=="float"||i.baseType=="integer")try{return r*parseFloat(i.value.toString())}catch{console.warn("can not convert to number")}else console.warn(`has another baseType ${i.baseType}`);return r},1)}};var dc=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},dr=class extends A{constructor(){super(...arguments),this.min=0,this.max=10,this.step=1}getResult(){if(this.min>this.max)return console.error("qti-random-integer: min cannot be greater than max"),this.min;if(this.step<=0)return console.error("qti-random-integer: step must be positive"),this.min;let t=[],e=0;for(;;){let i=this.min+this.step*e;if(i>this.max)break;Number.isInteger(i)&&t.push(i),e++}if(t.length===0)return console.warn("qti-random-integer: no valid integer values in range"),Number.isInteger(this.min)?this.min:Math.floor(this.min);let r=Math.floor(Math.random()*t.length);return t[r]}getPossibleValues(){let t=[];if(this.min>this.max||this.step<=0)return[Number.isInteger(this.min)?this.min:Math.floor(this.min)];let e=0;for(;;){let r=this.min+this.step*e;if(r>this.max)break;Number.isInteger(r)&&t.push(r),e++}return t.length>0?t:[Number.isInteger(this.min)?this.min:Math.floor(this.min)]}};dc([p({type:Number})],dr.prototype,"min",void 0);dc([p({type:Number})],dr.prototype,"max",void 0);dc([p({type:Number})],dr.prototype,"step",void 0);var Ns=class extends A{getResult(){let t=this.getVariables();if(t.length===1){let e=t[0].value;if(Array.isArray(e)){let r=Math.floor(Math.random()*e.length);return e[r]}return e}return console.error("unexpected number of children in match"),null}};var rm=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},so=class extends A{constructor(){super(...arguments),this.numberRepeats=""}getResult(){let t=this.#t();if(t<=0)return[];let e=this.firstElementChild;if(!e)return console.warn("qti-repeat: missing child expression"),[];let r=[];for(let i=0;i<t;i++){let o=e.calculate(),s=this.#e(o);s&&r.push(s)}return r}#t(){if(!this.numberRepeats)return console.warn("qti-repeat: missing number-repeats attribute"),0;let t=parseInt(this.numberRepeats,10);if(!Number.isNaN(t))return t;let e=this.numberRepeats,r=this.context?.variables?.find(s=>s.identifier===e);if(!r)return console.warn(`qti-repeat: unknown identifier "${e}"`),0;let i=Array.isArray(r.value)?r.value[0]:r.value,o=parseInt(i?.toString()??"",10);return Number.isNaN(o)?(console.warn(`qti-repeat: invalid repeat count from "${e}"`),0):o}#e(t){if(t==null)return null;if(typeof t=="number")return{identifier:"",cardinality:"single",baseType:Number.isInteger(t)?"integer":"float",value:t.toString(),type:"response"};if(typeof t=="string"){let e=parseFloat(t);if(!Number.isNaN(e))return{identifier:"",cardinality:"single",baseType:Number.isInteger(e)?"integer":"float",value:t.toString(),type:"response"}}if(t&&typeof t=="object"&&"value"in t){let e=t.value;return{identifier:"",cardinality:"single",baseType:t.baseType??"string",value:e!=null?e.toString():null,type:"response"}}return{identifier:"",cardinality:"single",baseType:"string",value:t.toString(),type:"response"}}};rm([p({type:String,attribute:"number-repeats"})],so.prototype,"numberRepeats",void 0);var $s=class extends Yr{};var Jr=class extends Xr{};var Ls=class extends Jr{};var Vs=class extends Gr{};var $h=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Zr=class extends A{constructor(){super(...arguments),this.roundingMode="significantFigures",this.figures=3}getResult(){if(this.children.length!==1)return console.error("qti-round-to must have exactly one child expression"),null;let t=this.getVariables();if(!t||t.length===0)return null;let e=t[0];if(e.cardinality!=="single")return console.error("qti-round-to requires single cardinality"),null;if(Array.isArray(e.value))return console.error("qti-round-to unexpected array value for single cardinality"),null;if(e.value===null||e.value===void 0)return null;if(e.baseType!=="integer"&&e.baseType!=="float")return console.error("qti-round-to requires numerical base-type"),null;let r=parseFloat(e.value);return isNaN(r)?null:isFinite(r)?this.figures<0?(console.error("qti-round-to: figures must be non-negative"),null):this.roundingMode==="significantFigures"&&this.figures<1?(console.error("qti-round-to: figures must be at least 1 for significantFigures mode"),null):this.roundingMode==="decimalPlaces"?this.#t(r,this.figures):this.#e(r,this.figures):r===1/0?1/0:r===-1/0?-1/0:null}#t(t,e){if(t===0)return 0;let r=Math.pow(10,e);return Math.round(t*r)/r}#e(t,e){if(t===0)return 0;let r=Math.floor(Math.log10(Math.abs(t))),i=Math.pow(10,e-r-1);return Math.round(t*i)/i}};$h([p({type:String,attribute:"rounding-mode"})],Zr.prototype,"roundingMode",void 0);$h([p({type:Number})],Zr.prototype,"figures",void 0);var zs=class extends A{getResult(){if(this.children.length!==1)return console.error("qti-round must have exactly one child expression"),null;let t=this.getVariables();if(!t||t.length===0)return null;let e=t[0];if(e.cardinality!=="single")return console.error("qti-round requires single cardinality"),null;if(Array.isArray(e.value))return console.error("qti-round unexpected array value for single cardinality"),null;if(e.value===null||e.value===void 0)return null;if(e.baseType!=="integer"&&e.baseType!=="float")return console.error("qti-round requires numerical base-type (integer or float)"),null;let r=parseFloat(e.value);return isNaN(r)?(console.warn("qti-round: NaN input results in NULL"),null):isFinite(r)?Math.floor(r+.5):r===1/0?1/0:r===-1/0?-1/0:null}};var js=class extends ct{process(){let t=this.getAttribute("identifier");if(!t){console.warn('QtiSetCorrectResponse: Missing "identifier" attribute.');return}let e=this.firstElementChild;if(!e){console.warn("QtiSetCorrectResponse: No expression found.");return}let i=new hc(e).process();this.dispatchEvent(new CustomEvent("qti-set-correct-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:t,value:this.#t(i)}}))}#t(t){return t==null?null:Array.isArray(t)?t.map(e=>Ct(this.#e(e))):Ct(this.#e(t))}#e(t){if(t&&typeof t=="object"&&"value"in t){let e=t.value;return e!=null?e.toString():""}return t?.toString()??""}},hc=class{constructor(t){this.expression=t}process(){let t=this.expression.calculate()??null;return t===null&&console.warn("QtiSetCorrectResponseRule: Evaluated value is null."),Array.isArray(t)?t.map(e=>this.#t(e)):this.#t(t)}#t(t){return t&&typeof t=="object"&&"value"in t?t.value:t}};var Fs=class extends ct{process(){let t=this.getAttribute("identifier");if(!t){console.warn('QtiSetOutcomeValue: Missing "identifier" attribute.');return}let e=this.firstElementChild;if(!e){console.warn("QtiSetOutcomeValue: No expression found.");return}let i=new pc(e).process();this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:t,value:this.#t(i)}}))}#t(t){return Array.isArray(t)?t.map(Ct):t!==null?Ct(t):null}},pc=class{constructor(t){this.expression=t}process(){let t=this.expression.calculate()??null;return t===null&&console.warn("QtiSetOutcomeValueRule: Evaluated value is null."),Array.isArray(t)?t.map(e=>e.value?e.value:e):t}};var Bs=class extends ct{process(){let t=this.getAttribute("identifier");if(!t){console.warn('QtiSetTemplateValue: Missing "identifier" attribute.');return}let e=this.firstElementChild;if(!e){console.warn("QtiSetTemplateValue: No expression found.");return}let i=new uc(e).process();this.dispatchEvent(new CustomEvent("qti-set-template-value",{bubbles:!0,composed:!0,detail:{templateIdentifier:t,value:this.#t(i)}}))}#t(t){return t==null?null:Array.isArray(t)?t.map(e=>Ct(this.#e(e))):Ct(this.#e(t))}#e(t){if(t&&typeof t=="object"&&"value"in t){let e=t.value;return e!=null?e.toString():""}return t?.toString()??""}},uc=class{constructor(t){this.expression=t}process(){let t=this.expression.calculate()??null;return t===null&&console.warn("QtiSetTemplateValueRule: Evaluated value is null."),Array.isArray(t)?t.map(e=>this.#t(e)):this.#t(t)}#t(t){return t&&typeof t=="object"&&"value"in t?t.value:t}};var im=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ao=class extends A{constructor(){super(...arguments),this.name=""}getResult(){if(!this.name)return console.warn("qti-stats-operator: missing name attribute"),null;let t=this.#e(this.getVariables());if(t.length===0)return console.warn("qti-stats-operator: no numeric values provided"),null;switch(this.name.toLowerCase()){case"mean":return t.reduce((e,r)=>e+r,0)/t.length;case"popsd":return this.#t(t);default:return console.warn(`qti-stats-operator: unsupported operator "${this.name}"`),null}}#t(t){let e=t.reduce((i,o)=>i+o,0)/t.length,r=t.reduce((i,o)=>i+Math.pow(o-e,2),0)/t.length;return Math.sqrt(r)}#e(t){let e=[];for(let r of t){if(!r)continue;let i=o=>{if(o==null)return;let s=parseFloat(o.toString());if(Number.isNaN(s)){console.warn("qti-stats-operator: non-numeric value encountered");return}e.push(s)};if(Array.isArray(r.value)){r.value.forEach(o=>i(o));continue}i(r.value)}return e}};im([p({type:String})],ao.prototype,"name",void 0);var om=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},co=class extends A{constructor(){super(...arguments),this.caseSensitive="true"}getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(e.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(e.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti string-match"),!1;let i=this.caseSensitive==="true"?e.value:e.value.toLowerCase(),o=this.caseSensitive==="true"?r.value:r.value.toLowerCase();return J.compareSingleValues(i,o,e.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};om([p({type:String,attribute:"case-sensitive"})],co.prototype,"caseSensitive",void 0);var nm=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},lo=class extends A{constructor(){super(...arguments),this.caseSensitive="true"}getResult(){let t=this.getVariables();if(t.length!==2)return console.error("qti-substring requires exactly 2 child expressions"),null;let[e,r]=t;if(e.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(e.value)||Array.isArray(r.value))return console.error("qti-substring requires single cardinality"),null;if(e.value===null||r.value===null||e.value===void 0||r.value===void 0)return null;let i=e.value.toString(),o=r.value.toString();return this.caseSensitive!=="true"?o.toLowerCase().includes(i.toLowerCase()):o.includes(i)}};nm([p({type:String,attribute:"case-sensitive"})],lo.prototype,"caseSensitive",void 0);var Us=class extends sm(A){getResult(){return this.calculateChildren(Array.from(this.children))}};function sm(n){return class extends n{calculateChildren(e){let r=e.map(i=>{if(!i.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let o=i.calculate();return Number.isNaN(o)?(console.error("Unexpected value in qti-subtract, expected number"),null):Number(o)});return r.some(i=>i===null)?(console.error("One or more child expressions returned invalid values"),0):r[0]-r[1]}}}var Hs=class extends A{getResult(){return new mc(Array.from(this.children)).calculate()}},mc=class{constructor(t){this.expressions=t}calculate(){return this.expressions.filter(r=>r.calculate!==void 0).some(r=>r.calculate()===null)?null:this.expressions.map(r=>{let i=r.calculate();return Number.isNaN(i)?(console.error("unexpected value in qti-sum, expected number"),null):Number(i)}).reduce((r,i)=>r+i,0)}};var Ws=class extends A{getResult(){let t=this.getVariables();if(t.length!==1)return console.error("qti-truncate requires exactly one child expression"),null;let e=t[0];if(e.cardinality!=="single"||Array.isArray(e.value))return console.error("qti-truncate requires single cardinality"),null;if(e.baseType!=="integer"&&e.baseType!=="float")return console.error("qti-truncate requires numerical base-type"),null;if(e.value===null||e.value===void 0)return null;let r=Number.parseFloat(e.value);return Number.isNaN(r)?(console.error("qti-truncate requires a numerical value"),null):Math.trunc(r)}};var Qs=class extends A{getResult(){let t=this.getAttribute("identifier")||"";return this.resolveVariable(t)?.value??null}};var Lh=[{tag:"qti-and",ctor:rs},{tag:"qti-any-n",ctor:Hr},{tag:"qti-base-value",ctor:Ki},{tag:"qti-container-size",ctor:is},{tag:"qti-contains",ctor:os},{tag:"qti-correct",ctor:ns},{tag:"qti-default",ctor:lr},{tag:"qti-delete",ctor:ss},{tag:"qti-divide",ctor:as},{tag:"qti-duration-gte",ctor:cs},{tag:"qti-duration-lt",ctor:ls},{tag:"qti-equal",ctor:Zi},{tag:"qti-equal-rounded",ctor:Ji},{tag:"qti-field-value",ctor:ds},{tag:"qti-gcd",ctor:hs},{tag:"qti-gt",ctor:ps},{tag:"qti-gte",ctor:us},{tag:"qti-index",ctor:to},{tag:"qti-inside",ctor:Wr},{tag:"qti-integer-divide",ctor:ms},{tag:"qti-integer-modulus",ctor:fs},{tag:"qti-integer-to-float",ctor:gs},{tag:"qti-is-null",ctor:bs},{tag:"qti-lcm",ctor:ys},{tag:"qti-lookup-outcome-value",ctor:Qr},{tag:"qti-lt",ctor:vs},{tag:"qti-lte",ctor:ws},{tag:"qti-map-response",ctor:ro},{tag:"qti-map-response-point",ctor:eo},{tag:"qti-match",ctor:xs},{tag:"qti-math-operator",ctor:io},{tag:"qti-max",ctor:qs},{tag:"qti-member",ctor:Cs},{tag:"qti-min",ctor:ks},{tag:"qti-multiple",ctor:Es},{tag:"qti-not",ctor:Ss},{tag:"qti-null",ctor:As},{tag:"qti-or",ctor:Is},{tag:"qti-ordered",ctor:_s},{tag:"qti-outcome-condition",ctor:Rs},{tag:"qti-outcome-else",ctor:Ps},{tag:"qti-outcome-else-if",ctor:Os},{tag:"qti-outcome-if",ctor:Kr},{tag:"qti-pattern-match",ctor:oo},{tag:"qti-power",ctor:Ms},{tag:"qti-printed-variable",ctor:ht},{tag:"qti-product",ctor:Ds},{tag:"qti-random",ctor:Ns},{tag:"qti-random-integer",ctor:dr},{tag:"qti-repeat",ctor:so},{tag:"qti-response-condition",ctor:$s},{tag:"qti-response-else",ctor:Vs},{tag:"qti-response-else-if",ctor:Ls},{tag:"qti-response-if",ctor:Jr},{tag:"qti-round",ctor:zs},{tag:"qti-round-to",ctor:Zr},{tag:"qti-rule",ctor:ct},{tag:"qti-set-correct-response",ctor:js},{tag:"qti-set-outcome-value",ctor:Fs},{tag:"qti-set-template-value",ctor:Bs},{tag:"qti-stats-operator",ctor:ao},{tag:"qti-string-match",ctor:co},{tag:"qti-substring",ctor:lo},{tag:"qti-subtract",ctor:Us},{tag:"qti-sum",ctor:Hs},{tag:"qti-truncate",ctor:Ws},{tag:"qti-variable",ctor:Qs}];for(let{tag:n,ctor:t}of Lh)customElements.get(n)||customElements.define(n,t);var de=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},X;(function(n){n.Correct="correct",n.PartiallyCorrect="partially-correct",n.Incorrect="incorrect"})(X||(X={}));var fc=n=>{class t extends n{constructor(){super(...arguments),this.showCorrectResponse=!1,this._handleShowCorrectResponseChange=(r,i)=>{this.toggleInternalCorrectResponse(i)},this.showFullCorrectResponse=!1,this._handleShowFullCorrectResponseChange=(r,i)=>{this.toggleFullCorrectResponse(i)},this.showCandidateCorrection=!1,this._handleShowCandidateCorrectionChange=(r,i)=>{this.toggleCandidateCorrection(i)},this._correctResponse=null}set correctResponseAttr(r){this._correctResponse=r}get correctResponseAttr(){return this._correctResponse}get isFullCorrectResponse(){return this._isFullCorrectResponse}get registersWithItem(){return!this.isFullCorrectResponse&&super.registersWithItem}set isFullCorrectResponse(r){this._isFullCorrectResponse=r,r&&(this.setAttribute("inert",""),this.setAttribute("response-identifier",this.responseIdentifier+"_cr"),this.setAttribute("answer-key",""))}get correctResponse(){let r=this.responseVariable;return r?.correctResponse?r.correctResponse:this._correctResponse}set correctResponse(r){let i=this._correctResponse;this._correctResponse=r,r==null?this.removeAttribute("correct-response"):this.setAttribute("correct-response",Array.isArray(r)?r.join(","):r),this.requestUpdate("_correctResponse",i)}get correctness(){let r=this.correctResponse;if(!r)return null;let i=this.response;if(i==null||i===""||Array.isArray(i)&&i.length===0)return null;let o=Array.isArray(r)?r:[r],a=(Array.isArray(i)?i:[i]).filter(d=>d!=="");if(a.length===0)return null;let l=a.filter(d=>o.includes(d)).length,c=a.filter(d=>!o.includes(d)).length;return l===o.length&&c===0&&a.length===o.length?X.Correct:l>0&&(l<o.length||c>0)?X.PartiallyCorrect:X.Incorrect}get correctionPart(){return"correction"}toggleCorrectResponse(r){(this.configContext?.correctResponseMode||"internal")==="full"?this.toggleFullCorrectResponse(r):this.toggleInternalCorrectResponse(r)}get withholdsFullCorrectResponseWhenCorrect(){return this.configContext?.fullCorrectResponseOnlyWhenIncorrect!==!1}async toggleFullCorrectResponse(r){let i=this.nextSibling,o=i instanceof HTMLDivElement&&i?.classList.contains("full-correct-response"),s=this.correctResponse;if(!s)return;if(!(r&&(!this.withholdsFullCorrectResponseWhenCorrect||this.correctness!==X.Correct))){if(!o)return;this.parentElement?.removeChild(i);return}if(o)return;let l=this.cloneNode(!0);l.removeAttribute("show-full-correct-response"),l.removeAttribute("show-correct-response"),l.removeAttribute("show-candidate-correction");let c=document.createElement("div");c.classList.add("full-correct-response"),this.isInline?c.classList.add("full-correct-response-inline"):c.classList.add("full-correct-response-block"),c.role="full-correct-response",c.appendChild(l),l.isFullCorrectResponse=!0,this.parentElement?.insertBefore(c,this.nextSibling),await l.updateComplete,l.response=Array.isArray(s)?[...s]:s}toggleInternalCorrectResponse(r){this._internals.states.delete("show-correct-response"),r&&this.correctResponse&&this._internals.states.add("show-correct-response")}toggleCandidateCorrection(r){}firstUpdated(){super.firstUpdated(),!this.isFullCorrectResponse&&(this.showCorrectResponse&&this.toggleInternalCorrectResponse(!0),this.showFullCorrectResponse&&this.toggleFullCorrectResponse(!0))}}return de([p({attribute:"correct-response",reflect:!0,converter:zt({emptyAs:null})})],t.prototype,"correctResponseAttr",null),de([p({type:Boolean,attribute:"show-correct-response",reflect:!0})],t.prototype,"showCorrectResponse",void 0),de([$("showCorrectResponse",{waitUntilFirstUpdate:!0})],t.prototype,"_handleShowCorrectResponseChange",void 0),de([p({type:Boolean,attribute:"show-full-correct-response",reflect:!0})],t.prototype,"showFullCorrectResponse",void 0),de([$("showFullCorrectResponse",{waitUntilFirstUpdate:!0})],t.prototype,"_handleShowFullCorrectResponseChange",void 0),de([p({type:Boolean,attribute:"show-candidate-correction",reflect:!0})],t.prototype,"showCandidateCorrection",void 0),de([$("showCandidateCorrection",{waitUntilFirstUpdate:!0})],t.prototype,"_handleShowCandidateCorrectionChange",void 0),de([_()],t.prototype,"_isFullCorrectResponse",void 0),de([_()],t.prototype,"_correctResponse",void 0),t};var it=q`
9455
+ `}async#r(t){let e=t.target;e.files&&e.files.length>0&&(this.#t=e.files[0],this.#e=await this.#n(this.#t),this.saveResponse(this.#e),this.dispatchEvent(new CustomEvent("qti-interaction-response",{detail:{response:this.#e}})))}#n(t){return new Promise((e,r)=>{let n=new FileReader;n.onload=()=>e(n.result),n.onerror=()=>r(n.error),n.readAsDataURL(t)})}};var es=[{tag:"qti-upload-interaction",ctor:ts}];var Th=[...$d,...Io,..._o,...To,...Oo,...Po,...Mo,...Do,...No,...$o,...Lo,...Vo,...zo,...jo,...Bo,...Uo,...Wo,...Xo,...Ko,...Jo,...Zo,...es];for(let{tag:o,ctor:t}of Th)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Io)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of _o)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of To)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Oo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Po)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Mo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Do)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of No)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of $o)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Lo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Vo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of zo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of jo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Bo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Uo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Wo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Xo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Ko)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Jo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of Zo)customElements.get(o)||customElements.define(o,t);for(let{tag:o,ctor:t}of es)customElements.get(o)||customElements.define(o,t);var gD=async o=>{let t=o.substring(0,o.lastIndexOf("/")),e=await Ml().load(`${o}`).then(a=>a.assessmentTest()),r=await Ir().load(`${t}/${e.href}`).then(a=>a.htmlDoc()),n=await Ir().load(`${t}/${e.href}`).then(a=>a.items()),i=`${t}/${e.href}`,s=`${t}/${e.href.substring(0,e.href.lastIndexOf("/"))}`;return{testHTMLDoc:r,testURI:s,testURL:i,items:n,testIdentifier:e.identifier}},bD=async o=>jt().load(o).then(t=>t.htmlDoc().firstElementChild);var rs=class extends Fu(mt){calculate(){return this.calculateChildren(Array.from(this.children))}};function Fu(o){return class extends o{calculateChildren(e){return e.map(n=>{let i=n;if(!i.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let s=i.calculate(),a=!1;if(typeof s=="string")if(s==="true")a=!0;else if(s==="false")a=!1;else return console.error("unexpected val in qti-or, expected boolean"),null;else typeof s=="boolean"&&(a=s);return a}).every(n=>typeof n=="boolean"&&n)}}}var Rh=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Hr=class extends A{constructor(){super(...arguments),this.min=0,this.max=1/0}getResult(){let t=this.getVariables();if(!t||t.length===0)return console.error("qti-any-n requires at least one child expression"),null;if(this.min<0||this.max<this.min)return console.error("qti-any-n requires 0 <= min <= max"),null;let e=0;for(let r of t){if(r.cardinality!=="single"||Array.isArray(r.value))return console.error("qti-any-n requires single cardinality boolean expressions"),null;if(r.baseType!=="boolean")return console.error("qti-any-n requires boolean base-type"),null;if(r.value===null||r.value===void 0)return null;r.value==="true"&&e++}return e>=this.min&&e<=this.max}};Rh([p({type:Number})],Hr.prototype,"min",void 0);Rh([p({type:Number})],Hr.prototype,"max",void 0);var Bu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Jn=class extends A{constructor(){super(...arguments),this.baseType="string"}getResult(){return this.textContent.trim()}};Bu([p({type:String,attribute:"base-type"})],Jn.prototype,"baseType",void 0);var ns=class extends A{getResult(){if(this.children?.length!==1)return console.error("qti-container-size must have exactly one child expression"),0;let t=this.getVariables();if(!t||t?.length===0)return 0;let e=t[0];return e.value===null||e.value===void 0?0:e.cardinality!=="multiple"&&e.cardinality!=="ordered"?(console.error("qti-container-size requires multiple or ordered cardinality"),0):Array.isArray(e.value)?e.value.length:(console.error("qti-container-size: expected array value for multiple/ordered cardinality"),0)}};var is=class extends mt{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 n=e.value,i=r.value;return n.filter(l=>i.includes(l)).length>0}else if(e.baseType==="directedPair"&&r.baseType==="directedPair"&&e.cardinality==="single"){let n=e.value;return r.value.includes(n)}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}};var os=class extends A{get interpretation(){return this.getAttribute("interpretation")||""}getResult(){let t=this.getAttribute("identifier")||"",e=this.context.variables.find(r=>r.identifier===t)||null;return e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};var lc=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},lr=class extends A{constructor(){super(...arguments),this.identifier=""}getResult(){if(!this.identifier)return console.error("qti-default requires an identifier attribute"),null;let t=this.identifier.split("."),e=null,r;if(t.length===2)e=t[0],r=t[1];else if(t.length===1)r=t[0];else return console.error("qti-default: invalid identifier format"),null;if(e){let i=this._testContext.items.find(a=>a.identifier===e);if(console.debug(`itemContext: ${JSON.stringify(i)}`),!this._testContext||!i)return console.warn(`qti-default: item "${e}" not found in test context`),null;let s=this._testContext.items.find(a=>a.identifier===e)?.variables.find(a=>a.identifier===r);return s?s.defaultValue||null:(console.warn(`qti-default: variable "${r}" not found in item "${e}"`),null)}if(!this.context?.variables)return console.warn("qti-default: no variables found in item context"),null;let n=this.context.variables.find(i=>i.identifier===r);return n?n.defaultValue||null:(console.warn(`qti-default: variable "${r}" not found in item context`),null)}};lc([p({type:String})],lr.prototype,"identifier",void 0);lc([T({context:j,subscribe:!0}),_()],lr.prototype,"context",void 0);lc([_(),T({context:it,subscribe:!0})],lr.prototype,"_testContext",void 0);var ss=class extends A{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return e.cardinality!=="single"||!Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),null):t[0].baseType!==t[1].baseType?(console.error("The baseType of the two variables is different"),null):r.value.filter(i=>!e.value.includes(i))}return null}};var as=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length!==2?(console.warn("qti-divide: expected exactly 2 numeric values"),null):t[1]===0?(console.warn("qti-divide: division by zero"),null):t[0]/t[1]}#t(t){let e=[];for(let r of t){if(!r)continue;let n=i=>{if(i==null)return;let s=parseFloat(i.toString());if(Number.isNaN(s)){console.warn("qti-divide: non-numeric value encountered");return}e.push(s)};if(Array.isArray(r.value)){r.value.forEach(i=>n(i));continue}n(r.value)}return e}};var cs=class extends A{getResult(){let t=this.#t();return t?t[0]>=t[1]:null}#t(){let t=this.getVariables();if(t.length!==2)return console.error("qti-duration-gte requires exactly 2 duration expressions"),null;let e=t.map(r=>this.#e(r));return e.some(r=>r===null)?null:e}#e(t){if(t.cardinality!=="single"||Array.isArray(t.value))return console.error("qti-duration-gte requires single cardinality"),null;if(t.baseType!=="duration")return console.error("qti-duration-gte requires duration base-type"),null;if(t.value===null||t.value===void 0)return null;let e=Number.parseFloat(t.value.toString());return Number.isNaN(e)?(console.error(`qti-duration-gte requires duration values expressed in seconds, got "${t.value.toString()}"`),null):e}};var ls=class extends A{getResult(){let t=this.#t();return t?t[0]<t[1]:null}#t(){let t=this.getVariables();if(t.length!==2)return console.error("qti-duration-lt requires exactly 2 duration expressions"),null;let e=t.map(r=>this.#e(r));return e.some(r=>r===null)?null:e}#e(t){if(t.cardinality!=="single"||Array.isArray(t.value))return console.error("qti-duration-lt requires single cardinality"),null;if(t.baseType!=="duration")return console.error("qti-duration-lt requires duration base-type"),null;if(t.value===null||t.value===void 0)return null;let e=Number.parseFloat(t.value.toString());return Number.isNaN(e)?(console.error(`qti-duration-lt requires duration values expressed in seconds, got "${t.value.toString()}"`),null):e}};var Uu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Zn=class extends A{constructor(){super(...arguments),this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let e=parseInt(this.getAttribute("figures")||"0");return isNaN(e)?(console.error("figures attribute is not a number"),null):e<0?(console.error("figures attribute is negative"),null):e<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):e}getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(this.roundingMode===null)return null;if(e.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(e.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti equal"),!1;switch(t[0].baseType){case"integer":case"float":{let n=parseFloat(e.value),i=parseFloat(r.value);if(!isNaN(n)&&!isNaN(i))return this.roundingMode==="significantFigures"?n.toPrecision(this.figures)===i.toPrecision(this.figures):Math.round(n*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(i*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${n}, ${i}`);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}};Uu([p({type:String})],Zn.prototype,"roundingMode",void 0);var Hu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ti=class extends A{constructor(){super(...arguments),this.toleranceMode="exact"}getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return!e||!r?null:this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):e.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(e.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):e.value===null||r.value===null||e.value===void 0||r.value===void 0?null:J.compareSingleValues(e.value,r.value,e.baseType)}return console.error("unexpected number of children in qti-equal"),null}};Hu([p({type:String})],ti.prototype,"toleranceMode",void 0);var ds=class extends A{getResult(){let t=this.getAttribute("field-identifier");if(!t)throw new Error("field-identifier attribute is required");if(Array.from(this.children).length!==1)throw new Error("qti-field-value must have exactly one child expression");let r=this.getVariables()[0];if(r.baseType!=="record"||r.value===null)throw new Error("qti-field-value child expression must return a record");let n=r.value[t];if(n===void 0)throw new Error(`Field "${t}" not found in record`);return n}};var hs=class extends A{getResult(){if(this.children.length===0)return console.error("qti-gcd must have at least one child expression"),null;let t=this.getVariables();if(!t||t.length===0)return null;let e=[];for(let r of t){if(r.baseType!=="integer")return console.error("qti-gcd requires integer base-type"),null;if(r.value===null||r.value===void 0)return null;if(r.cardinality==="single"){if(Array.isArray(r.value))return console.error("qti-gcd unexpected array value for single cardinality"),null;let n=parseInt(r.value,10);if(isNaN(n))return console.error("qti-gcd non-numerical value"),null;e.push(n)}else if(r.cardinality==="multiple"||r.cardinality==="ordered"){if(!Array.isArray(r.value))return console.error("qti-gcd expected array value for multiple/ordered cardinality"),null;for(let n of r.value){if(n==null)return null;let i=parseInt(n,10);if(isNaN(i))return console.error("qti-gcd non-numerical value"),null;e.push(i)}}else return console.error("qti-gcd unsupported cardinality"),null}return e.length===0?null:this.#t(e)}#t(t){if(t.length===0)return 0;if(t.length===1)return Math.abs(t[0]);let e=Math.abs(t[0]);for(let r=1;r<t.length&&(e=this.#e(e,Math.abs(t[r])),e!==1);r++);return e}#e(t,e){if(t===0&&e===0)return 0;if(t===0)return e;if(e===0)return t;for(;e!==0;){let r=e;e=t%e,t=r}return t}};var ps=class extends A{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if((e.baseType==="integer"||e.baseType==="float")&&(r.baseType==="integer"||r.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}};var us=class extends mt{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return(e.baseType==="integer"||e.baseType==="float")&&(r.baseType==="integer"||r.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}};var Wu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ei=class extends A{getResult(){if(!this.n)return console.error('qti-index: missing required attribute "n"'),null;if(this.children.length!==1)return console.error("qti-index: must have exactly one child container element"),null;let t=this.getVariables()[0];if(!t)return console.error("qti-index: missing container"),null;let e;if(!isNaN(Number(this.n)))e=Number(this.n);else{let r=this.#t(this.n);if(r===null)return console.error(`qti-index: variable "${this.n}" is not a valid number`),null;e=Number(r)}if(e<=0||!Number.isInteger(e))return console.error("qti-index: index must be a positive integer"),null;if(t.cardinality==="ordered"){let r=Array.isArray(t.value)?t.value:[t.value];return t.value===null||e>r.length?null:r[e-1]}else return console.error("qti-index: child must have ordered cardinality"),null}#t(t){let e=this.context.variables.find(r=>r.identifier===t)?.value;return e===null||isNaN(Number(e))?null:Number(e)}};Wu([p({type:String})],ei.prototype,"n",void 0);var Oh=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Wr=class extends A{constructor(){super(...arguments),this.shape="",this.coords=""}getResult(){let t=this.getVariables();if(t.length!==1)return console.error("qti-inside requires exactly one point expression"),null;let e=t[0];if(e.cardinality!=="single"||Array.isArray(e.value))return console.error("qti-inside requires single cardinality"),null;if(e.value===null||e.value===void 0)return null;if(!this.shape||!this.coords)return console.error("qti-inside requires shape and coords attributes"),null;let r=this.#t(e.value.toString()),n=this.#e(this.coords);if(!r||n.length===0)return null;switch(this.shape.toLowerCase()){case"circle":return this.#r(r,n);case"rect":return this.#n(r,n);case"ellipse":return this.#i(r,n);case"poly":case"polygon":return this.#o(r,n);default:return console.error(`qti-inside does not support shape "${this.shape}"`),null}}#t(t){let e=t.split(/[,\s]+/).map(i=>i.trim()).filter(Boolean);if(e.length!==2)return console.error('qti-inside requires a point value formatted as "x y" or "x,y"'),null;let r=Number.parseFloat(e[0]),n=Number.parseFloat(e[1]);return Number.isNaN(r)||Number.isNaN(n)?(console.error("qti-inside requires numeric point coordinates"),null):{x:r,y:n}}#e(t){let e=t.split(",").map(r=>r.trim()).filter(Boolean).map(r=>Number.parseFloat(r));return e.some(r=>Number.isNaN(r))?(console.error("qti-inside requires numeric coords"),[]):e}#r(t,e){if(e.length!==3)return console.error("qti-inside circle requires x,y,r"),null;let[r,n,i]=e;return(t.x-r)**2+(t.y-n)**2<=i**2}#n(t,e){if(e.length!==4)return console.error("qti-inside rect requires left,top,right,bottom"),null;let[r,n,i,s]=e,a=Math.min(r,i),l=Math.max(r,i),c=Math.min(n,s),d=Math.max(n,s);return t.x>=a&&t.x<=l&&t.y>=c&&t.y<=d}#i(t,e){if(e.length!==4)return console.error("qti-inside ellipse requires centerX,centerY,radiusX,radiusY"),null;let[r,n,i,s]=e;return i===0||s===0?!1:(t.x-r)**2/i**2+(t.y-n)**2/s**2<=1}#o(t,e){if(e.length<6||e.length%2!==0)return console.error("qti-inside polygon requires at least 3 coordinate pairs"),null;let r=!1;for(let n=0,i=e.length-2;n<e.length;n+=2){let s=e[n],a=e[n+1],l=e[i],c=e[i+1];a>t.y!=c>t.y&&t.x<(l-s)*(t.y-a)/(c-a||Number.EPSILON)+s&&(r=!r),i=n}return r}};Oh([p({type:String})],Wr.prototype,"shape",void 0);Oh([p({type:String})],Wr.prototype,"coords",void 0);var ms=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length!==2?(console.error("qti-integer-divide requires exactly 2 integer values"),null):t[1]===0?(console.error("qti-integer-divide: division by zero"),null):Math.floor(t[0]/t[1])}#t(t){let e=[];for(let r of t){if(r.baseType!=="integer")return console.error("qti-integer-divide requires integer base-type"),[];if(r.cardinality!=="single"||Array.isArray(r.value))return console.error("qti-integer-divide requires single cardinality"),[];if(r.value===null||r.value===void 0)return[];let n=Number.parseInt(r.value,10);if(Number.isNaN(n))return console.error("qti-integer-divide requires integer values"),[];e.push(n)}return e}};var fs=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length!==2?(console.error("qti-integer-modulus requires exactly 2 integer values"),null):t[1]===0?(console.error("qti-integer-modulus: division by zero"),null):t[0]%t[1]}#t(t){let e=[];for(let r of t){if(r.baseType!=="integer")return console.error("qti-integer-modulus requires integer base-type"),[];if(r.cardinality!=="single"||Array.isArray(r.value))return console.error("qti-integer-modulus requires single cardinality"),[];if(r.value===null||r.value===void 0)return[];let n=Number.parseInt(r.value,10);if(Number.isNaN(n))return console.error("qti-integer-modulus requires integer values"),[];e.push(n)}return e}};var gs=class extends A{getResult(){let t=this.getVariables();if(t.length!==1)return console.error("qti-integer-to-float requires exactly one child expression"),null;let e=t[0];if(e.baseType!=="integer")return console.error("qti-integer-to-float requires integer base-type"),null;if(e.cardinality!=="single"||Array.isArray(e.value))return console.error("qti-integer-to-float requires single cardinality"),null;if(e.value===null||e.value===void 0)return null;let r=Number.parseInt(e.value,10);return Number.isNaN(r)?(console.error("qti-integer-to-float requires an integer value"),null):r}};var bs=class extends A{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}};var ys=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length===0?(console.error("qti-lcm requires at least one integer value"),null):t.reduce((e,r)=>this.#r(e,r))}#t(t){let e=[];for(let r of t){if(r.baseType!=="integer")return console.error("qti-lcm requires integer base-type"),[];if(r.value===null||r.value===void 0)return[];if(r.cardinality==="single"){if(Array.isArray(r.value))return console.error("qti-lcm unexpected array value for single cardinality"),[];let n=Number.parseInt(r.value,10);if(Number.isNaN(n))return console.error("qti-lcm requires integer values"),[];e.push(n);continue}if(r.cardinality!=="multiple"&&r.cardinality!=="ordered")return console.error("qti-lcm unsupported cardinality"),[];if(!Array.isArray(r.value))return console.error("qti-lcm expected array value for container cardinality"),[];for(let n of r.value){let i=Number.parseInt(n,10);if(Number.isNaN(i))return console.error("qti-lcm requires integer values"),[];e.push(i)}}return e}#e(t,e){let r=Math.abs(t),n=Math.abs(e);for(;n!==0;){let i=r%n;r=n,n=i}return r}#r(t,e){return t===0||e===0?0:Math.abs(t*e/this.#e(t,e))}};var ct=class extends C{render(){return b`<slot></slot>`}process(){throw new Error("Not implemented")}};var Ph=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Qr=class extends ct{get childExpression(){return this.firstElementChild}process(){let t=this.getAttribute("identifier"),e=this.context.variables.find(n=>n.identifier===t)||null,r;return e.interpolationTable&&(r=e.interpolationTable.get(parseFloat(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:Ct(r)}})),r)}};Ph([p({type:String})],Qr.prototype,"identifier",void 0);Ph([T({context:j,subscribe:!0}),_()],Qr.prototype,"context",void 0);var vs=class extends A{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if((e.baseType==="integer"||e.baseType==="float")&&(r.baseType==="integer"||r.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}};var ws=class extends mt{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return(e.baseType==="integer"||e.baseType==="float")&&(r.baseType==="integer"||r.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}};var Qu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ri=class extends A{getResult(){let t=this.context.variables.find(s=>s.identifier===this.identifier);if(!t)return console.warn(`Response ${this.identifier} cannot be found`),null;let e=t.areaMapping;if(!e)return console.warn(`Area mapping not found for response ${this.identifier}`),null;let r=Array.isArray(t.value)?t.value:[t.value];if(!r||r.length===0)return console.warn(`No candidate responses for response ${this.identifier}`),null;let n=0,i=new Set;for(let s of r)for(let a of e.areaMapEntries){if(i.has(a.coords))continue;J.isPointInArea(s,`${a.shape},${a.coords}`,t.baseType)&&(n+=a.mappedValue??0,i.add(a.coords))}return i.size<r.length&&(n+=e.defaultValue),e.lowerBound!=null&&(n=Math.max(e.lowerBound,n)),e.upperBound!=null&&(n=Math.min(e.upperBound,n)),n}};Qu([p({type:String})],ri.prototype,"identifier",void 0);var Gu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ni=class extends A{getResult(){let t=this.context.variables.find(i=>i.identifier===this.identifier);if(!t||!t.mapping)return console.error(`Response ${this.identifier} can not be found`),null;let e=t.mapping,r=Array.isArray(t.value)?t.value:[t.value],n=0;for(let i of r){let s=e.mapEntries.filter(l=>t.baseType==="string"&&!l.caseSensitive?J.compareSingleValues(l.mapKey.toLowerCase(),i.toLowerCase(),t.baseType):J.compareSingleValues(l.mapKey,i,t.baseType)),a=s.reduce((l,c)=>l.mappedValue>c.mappedValue?l:c,s.length>0?s[0]:{mapKey:null,mappedValue:null});a===null||a.mappedValue==null?n+=e.defaultValue:n+=a.mappedValue}return e?.lowerBound!==null&&e?.lowerBound!==void 0&&(n=Math.max(e.lowerBound,n)),e?.upperBound!==null&&e?.upperBound!==void 0&&(n=Math.min(e.upperBound,n)),n}};Gu([p({type:String})],ni.prototype,"identifier",void 0);var xs=class o extends A{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return o.match(e,r)}return console.error("unexpected number of children in match"),null}static match(t,e){if(t.value===null)return!1;switch(e.cardinality){case"single":return Array.isArray(t.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):J.compareSingleValues(t.value?.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 r=0;r<t.value.length;r++)if(!J.compareSingleValues(e.value[r],t.value[r],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 r=0;for(let n of e.value){let i=null,s=[...t.value];for(let a of s)if(J.compareSingleValues(n,a,e.baseType)){i=a;break}if(i!==null)s.splice(s.indexOf(i),1);else return!1;r++}return!0}default:return console.error("unexpected cardinality in qti match"),!1}}};var Xu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ii=class extends A{constructor(){super(...arguments),this.name=""}getResult(){if(!this.name)return console.error("qti-math-operator requires a name attribute"),null;let t=this.getVariables();if(!t||t.length===0)return null;let e=[];for(let r of t){if(r.cardinality!=="single")return console.error("qti-math-operator requires single cardinality"),null;if(Array.isArray(r.value))return console.error("qti-math-operator unexpected array value for single cardinality"),null;if(r.value===null||r.value===void 0)return null;if(r.baseType!=="integer"&&r.baseType!=="float")return console.error("qti-math-operator requires numerical base-type"),null;let n=parseFloat(r.value);if(isNaN(n))return console.error("qti-math-operator non-numerical value"),null;e.push(n)}return this.#t(this.name,e)}#t(t,e){try{switch(t.toLowerCase()){case"sin":return e.length!==1?null:Math.sin(e[0]);case"cos":return e.length!==1?null:Math.cos(e[0]);case"tan":return e.length!==1?null:Math.tan(e[0]);case"asin":return e.length!==1||e[0]<-1||e[0]>1?null:Math.asin(e[0]);case"acos":return e.length!==1||e[0]<-1||e[0]>1?null:Math.acos(e[0]);case"atan":return e.length!==1?null:Math.atan(e[0]);case"sinh":return e.length!==1?null:Math.sinh(e[0]);case"cosh":return e.length!==1?null:Math.cosh(e[0]);case"tanh":return e.length!==1?null:Math.tanh(e[0]);case"log":return e.length!==1||e[0]<=0?null:Math.log(e[0]);case"ln":return e.length!==1||e[0]<=0?null:Math.log(e[0]);case"log10":return e.length!==1||e[0]<=0?null:Math.log10(e[0]);case"exp":return e.length!==1?null:Math.exp(e[0]);case"abs":return e.length!==1?null:Math.abs(e[0]);case"sqrt":return e.length!==1||e[0]<0?null:Math.sqrt(e[0]);case"signum":return e.length!==1?null:Math.sign(e[0]);case"floor":return e.length!==1?null:Math.floor(e[0]);case"ceil":return e.length!==1?null:Math.ceil(e[0]);case"round":return e.length!==1?null:Math.round(e[0]);case"atan2":return e.length!==2?null:Math.atan2(e[0],e[1]);case"pow":{if(e.length!==2)return null;let r=e[0],n=e[1];return r===0&&n<=0||r<0&&!Number.isInteger(n)?null:Math.pow(r,n)}case"log_base":{if(e.length!==2)return null;let r=e[0],n=e[1];return r<=0||n<=0||n===1?null:Math.log(r)/Math.log(n)}case"mod":return e.length!==2||e[1]===0?null:e[0]%e[1];case"max":return e.length<1?null:Math.max(...e);case"min":return e.length<1?null:Math.min(...e);default:return console.error(`qti-math-operator: unknown operation "${t}"`),null}}catch(r){return console.error(`qti-math-operator: error performing operation "${t}":`,r),null}}};Xu([p({type:String})],ii.prototype,"name",void 0);var qs=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length===0?(console.warn("qti-max: no numeric values provided"),null):Math.max(...t)}#t(t){let e=[];for(let r of t){if(!r)continue;let n=i=>{if(i==null)return;let s=parseFloat(i.toString());if(Number.isNaN(s)){console.warn("qti-max: non-numeric value encountered");return}e.push(s)};if(Array.isArray(r.value)){r.value.forEach(i=>n(i));continue}n(r.value)}return e}};var Cs=class extends A{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||e.baseType==="integer"&&r.baseType==="float"||e.baseType==="float"&&r.baseType==="integer"||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 n=e.value;return r.value.includes(n)}};var ks=class extends A{getResult(){let t=this.#t(this.getVariables());return t.length===0?(console.warn("qti-min: no numeric values provided"),null):Math.min(...t)}#t(t){let e=[];for(let r of t){if(!r)continue;let n=i=>{if(i==null)return;let s=parseFloat(i.toString());if(Number.isNaN(s)){console.warn("qti-min: non-numeric value encountered");return}e.push(s)};if(Array.isArray(r.value)){r.value.forEach(i=>n(i));continue}n(r.value)}return e}};var Es=class extends A{getResult(){console.debug("qti-multiple getResult called",this.innerHTML);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}};var Ss=class extends A{render(){return b`${super.render()}`}getResult(){return!this.firstElementChild.calculate()}};var As=class extends A{getResult(){return null}};var Is=class extends mt{getResult(){return Array.from(this.children).map(e=>{let r=e;if(!r.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let n=r.calculate(),i=!1;if(typeof n=="string")if(n==="true")i=!0;else if(n==="false")i=!1;else return console.error("unexpected val in qti-or, expected boolean"),null;else typeof n=="boolean"&&(i=n);return i}).some(e=>typeof e=="boolean"&&e)}};var _s=class extends A{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}};var Ts=class extends C{render(){return b`<slot></slot>`}process(){let t=this.getSubRules();for(let e=0;e<t.length;e++)t[e].process()}},Gr=class extends Ts{shouldProcess(){return!0}getSubRules(){return[...this.children]}},Xr=class extends Ts{shouldProcess(){return this.firstElementChild.calculate()}getSubRules(){let t=[];for(let e=1;e<this.children.length;e++)t.push(this.children[e]);return t}},Yr=class extends ct{render(){return b`<slot></slot>`}process(){let t=[...this.children];for(let e of t)if(e.shouldProcess()){e.process();return}}};var Rs=class extends Yr{};var Kr=class extends Xr{};var Os=class extends Kr{};var Ps=class extends Gr{};var Yu=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},oi=class extends A{constructor(){super(...arguments),this.pattern=""}getResult(){let t=this.getVariables();if(t.length!==1)return console.error("qti-pattern-match requires exactly one child expression"),null;if(!this.pattern)return console.error("qti-pattern-match requires a pattern attribute"),null;let e=t[0];if(e.cardinality!=="single"||Array.isArray(e.value))return console.error("qti-pattern-match requires single cardinality"),null;if(e.value===null||e.value===void 0)return null;try{return new RegExp(this.pattern).test(e.value.toString())}catch(r){return console.error("qti-pattern-match requires a valid regular expression",r),null}}};Yu([p({type:String})],oi.prototype,"pattern",void 0);var Ms=class extends A{getResult(){if(this.children.length!==2)return console.error("qti-power must have exactly two child expressions"),null;let t=this.getVariables();if(!t||t.length!==2)return null;let[e,r]=t;if(e.cardinality!=="single"||r.cardinality!=="single")return console.error("qti-power requires single cardinality for both expressions"),null;if(Array.isArray(e.value)||Array.isArray(r.value))return console.error("qti-power unexpected array value for single cardinality"),null;if(e.value===null||e.value===void 0||r.value===null||r.value===void 0)return null;if(e.baseType!=="integer"&&e.baseType!=="float"||r.baseType!=="integer"&&r.baseType!=="float")return console.error("qti-power requires numerical base-types"),null;let n=parseFloat(e.value),i=parseFloat(r.value);if(isNaN(n)||isNaN(i))return console.error("qti-power: non-numerical values encountered"),null;if(n===0&&i<=0||n<0&&!Number.isInteger(i))return null;let s;try{s=Math.pow(n,i)}catch(a){return console.error("qti-power: error calculating power:",a),null}if(isNaN(s))return null;if(s===1/0||s===-1/0)return s;if(!isFinite(s)||Math.abs(s)>Number.MAX_VALUE||s!==0&&Math.abs(s)<Number.MIN_VALUE)return null;if(isFinite(s)&&s!==0){let a=Math.floor(Math.log10(Math.abs(s))),l=Math.max(0,14-a),c=Math.pow(10,l);s=Math.round(s*c)/c}return s}};var Ku=/%(?:(%)|([-+ 0#]*)(\d+)?(?:\.(\d+))?([diuoxXfFeEgGsc]))/g;function Ju(o){return o.replace(/e([+-])(\d)$/,"e$10$2")}function si(o,t){return Ju(t===void 0?o.toExponential():o.toExponential(t))}function Mh(o){let[t,e]=o.split(/e/i),r=t.includes(".")?t.replace(/\.?0+$/,""):t,n=e===void 0?"":`e${e}`;return`${r}${n}`}function Dh(o,t){let e=t===0?1:t,r=o===0?0:Math.floor(Math.log10(o));return r<-4||r>=e?Mh(si(o,e-1)):Mh(o.toFixed(Math.max(0,e-1-r)))}function Zu(o,t,e,r){if(o==="s"||o==="c"){let c=o==="c"?r.slice(0,1):r;return e===void 0?c:c.slice(0,e)}let n=Number(r);if(r.trim()===""||!Number.isFinite(n))return r;let i=Math.abs(n),s,a=n<0;switch(o){case"d":case"i":s=String(Math.trunc(i));break;case"u":s=String(Math.trunc(i)),a=!1;break;case"o":s=`${t.includes("#")?"0":""}${Math.trunc(i).toString(8)}`;break;case"x":s=`${t.includes("#")?"0x":""}${Math.trunc(i).toString(16)}`;break;case"X":s=`${t.includes("#")?"0X":""}${Math.trunc(i).toString(16).toUpperCase()}`;break;case"f":case"F":s=i.toFixed(e??6);break;case"e":s=si(i,e??6);break;case"E":s=si(i,e??6).toUpperCase();break;case"g":s=Dh(i,e??6);break;case"G":s=Dh(i,e??6).toUpperCase();break;default:return r}return`${a?"-":t.includes("+")?"+":t.includes(" ")?" ":""}${s}`}function tm(o,t,e){if(o.length>=e)return o;let r=e-o.length;if(t.includes("-"))return`${o}${" ".repeat(r)}`;if(t.includes("0")){let[,n,i]=/^([-+ ]?)(.*)$/.exec(o);return`${n}${"0".repeat(r)}${i}`}return`${" ".repeat(r)}${o}`}function Nh(o,t){return o.replace(Ku,(e,r,n,i,s,a)=>r?"%":tm(Zu(a,n??"",s===void 0?void 0:Number(s),t),n??"",i===void 0?0:Number(i)))}var le=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ht=class extends C{constructor(){super(...arguments),this.base=10,this.powerForm=!1,this.delimiter=";",this.mappingIndicator="="}render(){let t=this.context?.variables.find(r=>r.identifier===this.identifier),e=t?this.#t(t):null;return e===null?P:b`${e}`}#t(t){let e=t.value;if(e==null)return null;if(Array.isArray(e)){if(e.length===0)return null;if(this.index!==void 0){let r=e[this.index-1];return r==null?null:this.#e(r,t.baseType)}return e.map(r=>this.#e(r,t.baseType)).join(this.delimiter)}if(typeof e=="object"){let r=e;if(this.field!==void 0){let i=r[this.field];return i==null?null:this.#e(i,t.baseType)}let n=Object.entries(r).filter(([,i])=>i!=null);return n.length===0?null:n.map(([i,s])=>`${i}${this.mappingIndicator}${this.#e(s,t.baseType)}`).join(this.delimiter)}return this.#e(e,t.baseType)}#e(t,e){let r=Array.isArray(t)?t.join(" "):String(t);if(this.format)return Nh(this.format,r);if(e==="integer"&&this.base!==10){let n=Number.parseInt(r,10);if(Number.isFinite(n))return n.toString(this.base)}if(this.powerForm){let n=Number(r);if(r.trim()!==""&&Number.isFinite(n))return si(n)}return r}calculate(){return this.context.variables.find(e=>e.identifier===this.identifier)||null}};le([p({type:String})],ht.prototype,"identifier",void 0);le([p({type:String})],ht.prototype,"format",void 0);le([p({type:Number})],ht.prototype,"base",void 0);le([p({type:Number})],ht.prototype,"index",void 0);le([p({type:Boolean,attribute:"power-form"})],ht.prototype,"powerForm",void 0);le([p({type:String})],ht.prototype,"field",void 0);le([p({type:String})],ht.prototype,"delimiter",void 0);le([p({type:String,attribute:"mapping-indicator"})],ht.prototype,"mappingIndicator",void 0);le([T({context:j,subscribe:!0}),_()],ht.prototype,"context",void 0);var Ds=class extends A{getResult(){return this.getVariables().reduce((r,n)=>{if(n.baseType=="float"||n.baseType=="integer")try{return r*parseFloat(n.value.toString())}catch{console.warn("can not convert to number")}else console.warn(`has another baseType ${n.baseType}`);return r},1)}};var dc=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},dr=class extends A{constructor(){super(...arguments),this.min=0,this.max=10,this.step=1}getResult(){if(this.min>this.max)return console.error("qti-random-integer: min cannot be greater than max"),this.min;if(this.step<=0)return console.error("qti-random-integer: step must be positive"),this.min;let t=[],e=0;for(;;){let n=this.min+this.step*e;if(n>this.max)break;Number.isInteger(n)&&t.push(n),e++}if(t.length===0)return console.warn("qti-random-integer: no valid integer values in range"),Number.isInteger(this.min)?this.min:Math.floor(this.min);let r=Math.floor(Math.random()*t.length);return t[r]}getPossibleValues(){let t=[];if(this.min>this.max||this.step<=0)return[Number.isInteger(this.min)?this.min:Math.floor(this.min)];let e=0;for(;;){let r=this.min+this.step*e;if(r>this.max)break;Number.isInteger(r)&&t.push(r),e++}return t.length>0?t:[Number.isInteger(this.min)?this.min:Math.floor(this.min)]}};dc([p({type:Number})],dr.prototype,"min",void 0);dc([p({type:Number})],dr.prototype,"max",void 0);dc([p({type:Number})],dr.prototype,"step",void 0);var Ns=class extends A{getResult(){let t=this.getVariables();if(t.length===1){let e=t[0].value;if(Array.isArray(e)){let r=Math.floor(Math.random()*e.length);return e[r]}return e}return console.error("unexpected number of children in match"),null}};var em=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ai=class extends A{constructor(){super(...arguments),this.numberRepeats=""}getResult(){let t=this.#t();if(t<=0)return[];let e=this.firstElementChild;if(!e)return console.warn("qti-repeat: missing child expression"),[];let r=[];for(let n=0;n<t;n++){let i=e.calculate(),s=this.#e(i);s&&r.push(s)}return r}#t(){if(!this.numberRepeats)return console.warn("qti-repeat: missing number-repeats attribute"),0;let t=parseInt(this.numberRepeats,10);if(!Number.isNaN(t))return t;let e=this.numberRepeats,r=this.context?.variables?.find(s=>s.identifier===e);if(!r)return console.warn(`qti-repeat: unknown identifier "${e}"`),0;let n=Array.isArray(r.value)?r.value[0]:r.value,i=parseInt(n?.toString()??"",10);return Number.isNaN(i)?(console.warn(`qti-repeat: invalid repeat count from "${e}"`),0):i}#e(t){if(t==null)return null;if(typeof t=="number")return{identifier:"",cardinality:"single",baseType:Number.isInteger(t)?"integer":"float",value:t.toString(),type:"response"};if(typeof t=="string"){let e=parseFloat(t);if(!Number.isNaN(e))return{identifier:"",cardinality:"single",baseType:Number.isInteger(e)?"integer":"float",value:t.toString(),type:"response"}}if(t&&typeof t=="object"&&"value"in t){let e=t.value;return{identifier:"",cardinality:"single",baseType:t.baseType??"string",value:e!=null?e.toString():null,type:"response"}}return{identifier:"",cardinality:"single",baseType:"string",value:t.toString(),type:"response"}}};em([p({type:String,attribute:"number-repeats"})],ai.prototype,"numberRepeats",void 0);var $s=class extends Yr{};var Jr=class extends Xr{};var Ls=class extends Jr{};var Vs=class extends Gr{};var $h=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Zr=class extends A{constructor(){super(...arguments),this.roundingMode="significantFigures",this.figures=3}getResult(){if(this.children.length!==1)return console.error("qti-round-to must have exactly one child expression"),null;let t=this.getVariables();if(!t||t.length===0)return null;let e=t[0];if(e.cardinality!=="single")return console.error("qti-round-to requires single cardinality"),null;if(Array.isArray(e.value))return console.error("qti-round-to unexpected array value for single cardinality"),null;if(e.value===null||e.value===void 0)return null;if(e.baseType!=="integer"&&e.baseType!=="float")return console.error("qti-round-to requires numerical base-type"),null;let r=parseFloat(e.value);return isNaN(r)?null:isFinite(r)?this.figures<0?(console.error("qti-round-to: figures must be non-negative"),null):this.roundingMode==="significantFigures"&&this.figures<1?(console.error("qti-round-to: figures must be at least 1 for significantFigures mode"),null):this.roundingMode==="decimalPlaces"?this.#t(r,this.figures):this.#e(r,this.figures):r===1/0?1/0:r===-1/0?-1/0:null}#t(t,e){if(t===0)return 0;let r=Math.pow(10,e);return Math.round(t*r)/r}#e(t,e){if(t===0)return 0;let r=Math.floor(Math.log10(Math.abs(t))),n=Math.pow(10,e-r-1);return Math.round(t*n)/n}};$h([p({type:String,attribute:"rounding-mode"})],Zr.prototype,"roundingMode",void 0);$h([p({type:Number})],Zr.prototype,"figures",void 0);var zs=class extends A{getResult(){if(this.children.length!==1)return console.error("qti-round must have exactly one child expression"),null;let t=this.getVariables();if(!t||t.length===0)return null;let e=t[0];if(e.cardinality!=="single")return console.error("qti-round requires single cardinality"),null;if(Array.isArray(e.value))return console.error("qti-round unexpected array value for single cardinality"),null;if(e.value===null||e.value===void 0)return null;if(e.baseType!=="integer"&&e.baseType!=="float")return console.error("qti-round requires numerical base-type (integer or float)"),null;let r=parseFloat(e.value);return isNaN(r)?(console.warn("qti-round: NaN input results in NULL"),null):isFinite(r)?Math.floor(r+.5):r===1/0?1/0:r===-1/0?-1/0:null}};var js=class extends ct{process(){let t=this.getAttribute("identifier");if(!t){console.warn('QtiSetCorrectResponse: Missing "identifier" attribute.');return}let e=this.firstElementChild;if(!e){console.warn("QtiSetCorrectResponse: No expression found.");return}let n=new hc(e).process();this.dispatchEvent(new CustomEvent("qti-set-correct-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:t,value:this.#t(n)}}))}#t(t){return t==null?null:Array.isArray(t)?t.map(e=>Ct(this.#e(e))):Ct(this.#e(t))}#e(t){if(t&&typeof t=="object"&&"value"in t){let e=t.value;return e!=null?e.toString():""}return t?.toString()??""}},hc=class{constructor(t){this.expression=t}process(){let t=this.expression.calculate()??null;return t===null&&console.warn("QtiSetCorrectResponseRule: Evaluated value is null."),Array.isArray(t)?t.map(e=>this.#t(e)):this.#t(t)}#t(t){return t&&typeof t=="object"&&"value"in t?t.value:t}};var Fs=class extends ct{process(){let t=this.getAttribute("identifier");if(!t){console.warn('QtiSetOutcomeValue: Missing "identifier" attribute.');return}let e=this.firstElementChild;if(!e){console.warn("QtiSetOutcomeValue: No expression found.");return}let n=new pc(e).process();this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:t,value:this.#t(n)}}))}#t(t){return Array.isArray(t)?t.map(Ct):t!==null?Ct(t):null}},pc=class{constructor(t){this.expression=t}process(){let t=this.expression.calculate()??null;return t===null&&console.warn("QtiSetOutcomeValueRule: Evaluated value is null."),Array.isArray(t)?t.map(e=>e.value?e.value:e):t}};var Bs=class extends ct{process(){let t=this.getAttribute("identifier");if(!t){console.warn('QtiSetTemplateValue: Missing "identifier" attribute.');return}let e=this.firstElementChild;if(!e){console.warn("QtiSetTemplateValue: No expression found.");return}let n=new uc(e).process();this.dispatchEvent(new CustomEvent("qti-set-template-value",{bubbles:!0,composed:!0,detail:{templateIdentifier:t,value:this.#t(n)}}))}#t(t){return t==null?null:Array.isArray(t)?t.map(e=>Ct(this.#e(e))):Ct(this.#e(t))}#e(t){if(t&&typeof t=="object"&&"value"in t){let e=t.value;return e!=null?e.toString():""}return t?.toString()??""}},uc=class{constructor(t){this.expression=t}process(){let t=this.expression.calculate()??null;return t===null&&console.warn("QtiSetTemplateValueRule: Evaluated value is null."),Array.isArray(t)?t.map(e=>this.#t(e)):this.#t(t)}#t(t){return t&&typeof t=="object"&&"value"in t?t.value:t}};var rm=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},ci=class extends A{constructor(){super(...arguments),this.name=""}getResult(){if(!this.name)return console.warn("qti-stats-operator: missing name attribute"),null;let t=this.#e(this.getVariables());if(t.length===0)return console.warn("qti-stats-operator: no numeric values provided"),null;switch(this.name.toLowerCase()){case"mean":return t.reduce((e,r)=>e+r,0)/t.length;case"popsd":return this.#t(t);default:return console.warn(`qti-stats-operator: unsupported operator "${this.name}"`),null}}#t(t){let e=t.reduce((n,i)=>n+i,0)/t.length,r=t.reduce((n,i)=>n+Math.pow(i-e,2),0)/t.length;return Math.sqrt(r)}#e(t){let e=[];for(let r of t){if(!r)continue;let n=i=>{if(i==null)return;let s=parseFloat(i.toString());if(Number.isNaN(s)){console.warn("qti-stats-operator: non-numeric value encountered");return}e.push(s)};if(Array.isArray(r.value)){r.value.forEach(i=>n(i));continue}n(r.value)}return e}};rm([p({type:String})],ci.prototype,"name",void 0);var nm=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},li=class extends A{constructor(){super(...arguments),this.caseSensitive="true"}getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(e.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(e.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti string-match"),!1;let n=this.caseSensitive==="true"?e.value:e.value.toLowerCase(),i=this.caseSensitive==="true"?r.value:r.value.toLowerCase();return J.compareSingleValues(n,i,e.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};nm([p({type:String,attribute:"case-sensitive"})],li.prototype,"caseSensitive",void 0);var im=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},di=class extends A{constructor(){super(...arguments),this.caseSensitive="true"}getResult(){let t=this.getVariables();if(t.length!==2)return console.error("qti-substring requires exactly 2 child expressions"),null;let[e,r]=t;if(e.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(e.value)||Array.isArray(r.value))return console.error("qti-substring requires single cardinality"),null;if(e.value===null||r.value===null||e.value===void 0||r.value===void 0)return null;let n=e.value.toString(),i=r.value.toString();return this.caseSensitive!=="true"?i.toLowerCase().includes(n.toLowerCase()):i.includes(n)}};im([p({type:String,attribute:"case-sensitive"})],di.prototype,"caseSensitive",void 0);var Us=class extends om(A){getResult(){return this.calculateChildren(Array.from(this.children))}};function om(o){return class extends o{calculateChildren(e){let r=e.map(n=>{if(!n.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let i=n.calculate();return Number.isNaN(i)?(console.error("Unexpected value in qti-subtract, expected number"),null):Number(i)});return r.some(n=>n===null)?(console.error("One or more child expressions returned invalid values"),0):r[0]-r[1]}}}var Hs=class extends A{getResult(){return new mc(Array.from(this.children)).calculate()}},mc=class{constructor(t){this.expressions=t}calculate(){return this.expressions.filter(r=>r.calculate!==void 0).some(r=>r.calculate()===null)?null:this.expressions.map(r=>{let n=r.calculate();return Number.isNaN(n)?(console.error("unexpected value in qti-sum, expected number"),null):Number(n)}).reduce((r,n)=>r+n,0)}};var Ws=class extends A{getResult(){let t=this.getVariables();if(t.length!==1)return console.error("qti-truncate requires exactly one child expression"),null;let e=t[0];if(e.cardinality!=="single"||Array.isArray(e.value))return console.error("qti-truncate requires single cardinality"),null;if(e.baseType!=="integer"&&e.baseType!=="float")return console.error("qti-truncate requires numerical base-type"),null;if(e.value===null||e.value===void 0)return null;let r=Number.parseFloat(e.value);return Number.isNaN(r)?(console.error("qti-truncate requires a numerical value"),null):Math.trunc(r)}};var Qs=class extends A{getResult(){let t=this.getAttribute("identifier")||"";return this.resolveVariable(t)?.value??null}};var Lh=[{tag:"qti-and",ctor:rs},{tag:"qti-any-n",ctor:Hr},{tag:"qti-base-value",ctor:Jn},{tag:"qti-container-size",ctor:ns},{tag:"qti-contains",ctor:is},{tag:"qti-correct",ctor:os},{tag:"qti-default",ctor:lr},{tag:"qti-delete",ctor:ss},{tag:"qti-divide",ctor:as},{tag:"qti-duration-gte",ctor:cs},{tag:"qti-duration-lt",ctor:ls},{tag:"qti-equal",ctor:ti},{tag:"qti-equal-rounded",ctor:Zn},{tag:"qti-field-value",ctor:ds},{tag:"qti-gcd",ctor:hs},{tag:"qti-gt",ctor:ps},{tag:"qti-gte",ctor:us},{tag:"qti-index",ctor:ei},{tag:"qti-inside",ctor:Wr},{tag:"qti-integer-divide",ctor:ms},{tag:"qti-integer-modulus",ctor:fs},{tag:"qti-integer-to-float",ctor:gs},{tag:"qti-is-null",ctor:bs},{tag:"qti-lcm",ctor:ys},{tag:"qti-lookup-outcome-value",ctor:Qr},{tag:"qti-lt",ctor:vs},{tag:"qti-lte",ctor:ws},{tag:"qti-map-response",ctor:ni},{tag:"qti-map-response-point",ctor:ri},{tag:"qti-match",ctor:xs},{tag:"qti-math-operator",ctor:ii},{tag:"qti-max",ctor:qs},{tag:"qti-member",ctor:Cs},{tag:"qti-min",ctor:ks},{tag:"qti-multiple",ctor:Es},{tag:"qti-not",ctor:Ss},{tag:"qti-null",ctor:As},{tag:"qti-or",ctor:Is},{tag:"qti-ordered",ctor:_s},{tag:"qti-outcome-condition",ctor:Rs},{tag:"qti-outcome-else",ctor:Ps},{tag:"qti-outcome-else-if",ctor:Os},{tag:"qti-outcome-if",ctor:Kr},{tag:"qti-pattern-match",ctor:oi},{tag:"qti-power",ctor:Ms},{tag:"qti-printed-variable",ctor:ht},{tag:"qti-product",ctor:Ds},{tag:"qti-random",ctor:Ns},{tag:"qti-random-integer",ctor:dr},{tag:"qti-repeat",ctor:ai},{tag:"qti-response-condition",ctor:$s},{tag:"qti-response-else",ctor:Vs},{tag:"qti-response-else-if",ctor:Ls},{tag:"qti-response-if",ctor:Jr},{tag:"qti-round",ctor:zs},{tag:"qti-round-to",ctor:Zr},{tag:"qti-rule",ctor:ct},{tag:"qti-set-correct-response",ctor:js},{tag:"qti-set-outcome-value",ctor:Fs},{tag:"qti-set-template-value",ctor:Bs},{tag:"qti-stats-operator",ctor:ci},{tag:"qti-string-match",ctor:li},{tag:"qti-substring",ctor:di},{tag:"qti-subtract",ctor:Us},{tag:"qti-sum",ctor:Hs},{tag:"qti-truncate",ctor:Ws},{tag:"qti-variable",ctor:Qs}];for(let{tag:o,ctor:t}of Lh)customElements.get(o)||customElements.define(o,t);var de=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},X;(function(o){o.Correct="correct",o.PartiallyCorrect="partially-correct",o.Incorrect="incorrect"})(X||(X={}));var fc=o=>{class t extends o{constructor(){super(...arguments),this.showCorrectResponse=!1,this._handleShowCorrectResponseChange=(r,n)=>{this.toggleInternalCorrectResponse(n)},this.showFullCorrectResponse=!1,this._handleShowFullCorrectResponseChange=(r,n)=>{this.toggleFullCorrectResponse(n)},this.showCandidateCorrection=!1,this._handleShowCandidateCorrectionChange=(r,n)=>{this.toggleCandidateCorrection(n)},this._correctResponse=null}set correctResponseAttr(r){this._correctResponse=r}get correctResponseAttr(){return this._correctResponse}get isFullCorrectResponse(){return this._isFullCorrectResponse}get registersWithItem(){return!this.isFullCorrectResponse&&super.registersWithItem}set isFullCorrectResponse(r){this._isFullCorrectResponse=r,r&&(this.setAttribute("inert",""),this.setAttribute("response-identifier",this.responseIdentifier+"_cr"),this.setAttribute("answer-key",""))}get correctResponse(){let r=this.responseVariable;return r?.correctResponse?r.correctResponse:this._correctResponse}set correctResponse(r){let n=this._correctResponse;this._correctResponse=r,r==null?this.removeAttribute("correct-response"):this.setAttribute("correct-response",Array.isArray(r)?r.join(","):r),this.requestUpdate("_correctResponse",n)}get correctness(){let r=this.correctResponse;if(!r)return null;let n=this.response;if(n==null||n===""||Array.isArray(n)&&n.length===0)return null;let i=Array.isArray(r)?r:[r],a=(Array.isArray(n)?n:[n]).filter(d=>d!=="");if(a.length===0)return null;let l=a.filter(d=>i.includes(d)).length,c=a.filter(d=>!i.includes(d)).length;return l===i.length&&c===0&&a.length===i.length?X.Correct:l>0&&(l<i.length||c>0)?X.PartiallyCorrect:X.Incorrect}get correctionPart(){return"correction"}toggleCorrectResponse(r){(this.configContext?.correctResponseMode||"internal")==="full"?this.toggleFullCorrectResponse(r):this.toggleInternalCorrectResponse(r)}get withholdsFullCorrectResponseWhenCorrect(){return this.configContext?.fullCorrectResponseOnlyWhenIncorrect!==!1}async toggleFullCorrectResponse(r){let n=this.nextSibling,i=n instanceof HTMLDivElement&&n?.classList.contains("full-correct-response"),s=this.correctResponse;if(!s)return;if(!(r&&(!this.withholdsFullCorrectResponseWhenCorrect||this.correctness!==X.Correct))){if(!i)return;this.parentElement?.removeChild(n);return}if(i)return;let l=this.cloneNode(!0);l.removeAttribute("show-full-correct-response"),l.removeAttribute("show-correct-response"),l.removeAttribute("show-candidate-correction");let c=document.createElement("div");c.classList.add("full-correct-response"),this.isInline?c.classList.add("full-correct-response-inline"):c.classList.add("full-correct-response-block"),c.role="full-correct-response",c.appendChild(l),l.isFullCorrectResponse=!0,this.parentElement?.insertBefore(c,this.nextSibling),await l.updateComplete,l.response=Array.isArray(s)?[...s]:s}toggleInternalCorrectResponse(r){this._internals.states.delete("show-correct-response"),r&&this.correctResponse&&this._internals.states.add("show-correct-response")}toggleCandidateCorrection(r){}firstUpdated(){super.firstUpdated(),!this.isFullCorrectResponse&&(this.showCorrectResponse&&this.toggleInternalCorrectResponse(!0),this.showFullCorrectResponse&&this.toggleFullCorrectResponse(!0))}}return de([p({attribute:"correct-response",reflect:!0,converter:zt({emptyAs:null})})],t.prototype,"correctResponseAttr",null),de([p({type:Boolean,attribute:"show-correct-response",reflect:!0})],t.prototype,"showCorrectResponse",void 0),de([$("showCorrectResponse",{waitUntilFirstUpdate:!0})],t.prototype,"_handleShowCorrectResponseChange",void 0),de([p({type:Boolean,attribute:"show-full-correct-response",reflect:!0})],t.prototype,"showFullCorrectResponse",void 0),de([$("showFullCorrectResponse",{waitUntilFirstUpdate:!0})],t.prototype,"_handleShowFullCorrectResponseChange",void 0),de([p({type:Boolean,attribute:"show-candidate-correction",reflect:!0})],t.prototype,"showCandidateCorrection",void 0),de([$("showCandidateCorrection",{waitUntilFirstUpdate:!0})],t.prototype,"_handleShowCandidateCorrectionChange",void 0),de([_()],t.prototype,"_isFullCorrectResponse",void 0),de([_()],t.prototype,"_correctResponse",void 0),t};var nt=q`
9456
9456
  /* Nothing at all until the item judges this element. */
9457
9457
  [part~='correction'] {
9458
9458
  display: none;
@@ -9485,21 +9485,21 @@ CES.load();
9485
9485
 
9486
9486
  pointer-events: none;
9487
9487
  }
9488
- `;var am=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},G=n=>{class t extends fc(n){constructor(){super(...arguments),this._candidateCorrection=null}get correctionPart(){return this._candidateCorrection?`correction correction-${this._candidateCorrection}`:"correction"}toggleCandidateCorrection(r){this.showCandidateCorrection!==r&&(this.showCandidateCorrection=r),super.toggleCandidateCorrection(r);let i=this._internals;i.states.delete("candidate-correct"),i.states.delete("candidate-partially-correct"),i.states.delete("candidate-incorrect");let o=null;r&&(this.correctness===X.Correct&&(i.states.add("candidate-correct"),o="correct"),this.correctness===X.PartiallyCorrect&&(i.states.add("candidate-partially-correct"),o="partially-correct"),this.correctness===X.Incorrect&&(i.states.add("candidate-incorrect"),o="incorrect")),this._candidateCorrection!==o&&(this._candidateCorrection=o)}connectedCallback(){super.connectedCallback?.(),queueMicrotask(()=>{!this.isConnected||this.isFullCorrectResponse||this.showCandidateCorrection&&this.toggleCandidateCorrection(!0)})}}return am([_()],t.prototype,"_candidateCorrection",void 0),t};var hr=n=>{class t extends G(n){toggleInternalCorrectResponse(r){super.toggleInternalCorrectResponse(r);let i=this.correctResponse,o=i?Array.isArray(i)?i:[i]:[];for(let s of this._choiceElements)s.internals.states.delete("correct-response"),s.internals.states.delete("incorrect-response"),r&&o.length>0&&s.internals.states.add(o.includes(s.identifier)?"correct-response":"incorrect-response")}toggleCandidateCorrection(r){super.toggleCandidateCorrection(r);for(let s of this._choiceElements)s.candidateCorrection=null;if(!r||!this.correctResponse)return;let i=Array.isArray(this.correctResponse)?this.correctResponse:[this.correctResponse],o=Array.isArray(this.response)?this.response:this.response?[this.response]:[];for(let s of this._choiceElements)o.includes(s.identifier)&&(s.candidateCorrection=i.includes(s.identifier)?"correct":"incorrect")}}return t};var qt=n=>{class t extends n{#t=null;get candidateCorrection(){return this.#t}set candidateCorrection(r){if(this.#t===r)return;let i=this.#t;this.#t=r;let o=this.internals.states;o.delete("candidate-correct"),o.delete("candidate-incorrect"),o.delete("candidate-partially-correct"),r&&o.add(`candidate-${r}`),this.requestUpdate("candidateCorrection",i)}get correctionPart(){return this.#t?`correction correction-${this.#t}`:"correction"}}return t};var gc=class extends qt(Ce){static{this.styles=[Ce.styles,it]}render(){return b`<div part="control"></div>
9488
+ `;var sm=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},G=o=>{class t extends fc(o){constructor(){super(...arguments),this._candidateCorrection=null}get correctionPart(){return this._candidateCorrection?`correction correction-${this._candidateCorrection}`:"correction"}toggleCandidateCorrection(r){this.showCandidateCorrection!==r&&(this.showCandidateCorrection=r),super.toggleCandidateCorrection(r);let n=this._internals;n.states.delete("candidate-correct"),n.states.delete("candidate-partially-correct"),n.states.delete("candidate-incorrect");let i=null;r&&(this.correctness===X.Correct&&(n.states.add("candidate-correct"),i="correct"),this.correctness===X.PartiallyCorrect&&(n.states.add("candidate-partially-correct"),i="partially-correct"),this.correctness===X.Incorrect&&(n.states.add("candidate-incorrect"),i="incorrect")),this._candidateCorrection!==i&&(this._candidateCorrection=i)}connectedCallback(){super.connectedCallback?.(),queueMicrotask(()=>{!this.isConnected||this.isFullCorrectResponse||this.showCandidateCorrection&&this.toggleCandidateCorrection(!0)})}}return sm([_()],t.prototype,"_candidateCorrection",void 0),t};var hr=o=>{class t extends G(o){toggleInternalCorrectResponse(r){super.toggleInternalCorrectResponse(r);let n=this.correctResponse,i=n?Array.isArray(n)?n:[n]:[];for(let s of this._choiceElements)s.internals.states.delete("correct-response"),s.internals.states.delete("incorrect-response"),r&&i.length>0&&s.internals.states.add(i.includes(s.identifier)?"correct-response":"incorrect-response")}toggleCandidateCorrection(r){super.toggleCandidateCorrection(r);for(let s of this._choiceElements)s.candidateCorrection=null;if(!r||!this.correctResponse)return;let n=Array.isArray(this.correctResponse)?this.correctResponse:[this.correctResponse],i=Array.isArray(this.response)?this.response:this.response?[this.response]:[];for(let s of this._choiceElements)i.includes(s.identifier)&&(s.candidateCorrection=n.includes(s.identifier)?"correct":"incorrect")}}return t};var qt=o=>{class t extends o{#t=null;get candidateCorrection(){return this.#t}set candidateCorrection(r){if(this.#t===r)return;let n=this.#t;this.#t=r;let i=this.internals.states;i.delete("candidate-correct"),i.delete("candidate-incorrect"),i.delete("candidate-partially-correct"),r&&i.add(`candidate-${r}`),this.requestUpdate("candidateCorrection",n)}get correctionPart(){return this.#t?`correction correction-${this.#t}`:"correction"}}return t};var gc=class extends qt(Ce){static{this.styles=[Ce.styles,nt]}render(){return b`<div part="control"></div>
9489
9489
  <slot part="label"></slot>
9490
- <span part=${this.correctionPart} aria-hidden="true"></span>`}};var cm=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Gs=class extends qt(rr){constructor(){super(...arguments),this.orderCorrect=null}};cm([p({attribute:"aria-ordercorrectvalue",type:Number,reflect:!0})],Gs.prototype,"orderCorrect",void 0);var bc=class extends qt(ir){static{this.styles=[ir.styles,it]}render(){return b`<div part="control"><div part="control-mark"></div></div>
9490
+ <span part=${this.correctionPart} aria-hidden="true"></span>`}};var am=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Gs=class extends qt(rr){constructor(){super(...arguments),this.orderCorrect=null}};am([p({attribute:"aria-ordercorrectvalue",type:Number,reflect:!0})],Gs.prototype,"orderCorrect",void 0);var bc=class extends qt(nr){static{this.styles=[nr.styles,nt]}render(){return b`<div part="control"><div part="control-mark"></div></div>
9491
9491
  <slot part="label"></slot>
9492
- <span part=${this.correctionPart} aria-hidden="true"></span>`}};var yc=class extends qt(It){static{this.styles=[It.styles,it]}render(){return b`
9492
+ <span part=${this.correctionPart} aria-hidden="true"></span>`}};var yc=class extends qt(It){static{this.styles=[It.styles,nt]}render(){return b`
9493
9493
  <div part="control"></div>
9494
9494
  <slot part="label"></slot>
9495
9495
  <span part=${this.correctionPart} aria-hidden="true"></span>
9496
9496
  <div part="drop">
9497
9497
  ${H(this.drags,t=>t.getAttribute("identifier"),t=>t)}
9498
9498
  </div>
9499
- `}};var vc=class extends qt(_t){static{this.styles=[_t.styles,it]}render(){return b`<div part="control" tabindex="0"><div part="control-mark"></div></div>
9499
+ `}};var vc=class extends qt(_t){static{this.styles=[_t.styles,nt]}render(){return b`<div part="control" tabindex="0"><div part="control-mark"></div></div>
9500
9500
  ${this.marker?b`<div id="label" part="marker">${this.marker}</div>`:P}
9501
9501
  <slot part="label"></slot>
9502
- <span part=${this.correctionPart} aria-hidden="true"></span>`}};var Vh=class extends rt{showCorrectResponse(t){for(let e of this.interactionElements)e.toggleCorrectResponse?.(t);this.updateControlState("item-show-correct-response",t)}showCandidateCorrection(t){for(let e of this.interactionElements)e.toggleCandidateCorrection?.(t);this.updateControlState("item-show-candidate-correction",t)}afterResponseVariableUpdated(){this.showCandidateCorrection(!1)}updateControlState(t,e){let r=this.getRootNode();for(;;){if(r.querySelectorAll(t).forEach(i=>i.shown=e),!(r instanceof ShadowRoot))return;r=r.host.getRootNode()}}};var zh=class extends oe{#t=t=>{let e=t.detail;this.assessmentItem?.showCorrectResponse?.(e),this.updateControlState("item-show-correct-response",e)};#e=t=>{let e=t.detail;this.assessmentItem?.showCandidateCorrection?.(e),this.updateControlState("item-show-candidate-correction",e)};#r=t=>{this.assessmentItem?.showCorrectResponse?.(!1),this.configContext={...this.configContext,correctResponseMode:t.detail}};constructor(){super(),this.addEventListener("item-show-correct-response",this.#t),this.addEventListener("item-show-candidate-correction",this.#e),this.addEventListener("item-switch-correct-response-mode",this.#r)}updateControlState(t,e){this.querySelectorAll(t).forEach(r=>r.shown=e)}disconnectedCallback(){this.removeEventListener("item-show-correct-response",this.#t),this.removeEventListener("item-show-candidate-correction",this.#e),this.removeEventListener("item-switch-correct-response-mode",this.#r),super.disconnectedCallback()}};var jh=class extends st{#t=t=>{this.activeAssessmentItem?.showCorrectResponse?.(t.detail)};#e=t=>{this.activeAssessmentItem?.showCandidateCorrection?.(t.detail)};constructor(){super(),this.addEventListener("test-show-correct-response",this.#t),this.addEventListener("test-show-candidate-correction",this.#e)}disconnectedCallback(){this.removeEventListener("test-show-correct-response",this.#t),this.removeEventListener("test-show-candidate-correction",this.#e),super.disconnectedCallback()}afterAttemptEnded(t,e,r){if(!t||!e?.showSolution)return;let i=t;i.showCandidateCorrection?.(!0),i.showCorrectResponse?.(r)}},Fh=class extends He{updateAssessmentItemView(t,e){t.showCorrectResponse?.(e==="scorer")}},Bh=class extends Pr{constructor(){super(),this.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("test-show-correct-response",{detail:!0,bubbles:!0}))})}};var wc=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},ho=class extends C{constructor(){super(...arguments),this.label="Correct response mode",this._options={internal:"Internal",full:"Full (copy)"}}#t(t){this.dispatchEvent(new CustomEvent("item-switch-correct-response-mode",{detail:t,bubbles:!0}))}render(){return b`
9502
+ <span part=${this.correctionPart} aria-hidden="true"></span>`}};var Vh=class extends rt{showCorrectResponse(t){for(let e of this.interactionElements)e.toggleCorrectResponse?.(t);this.updateControlState("item-show-correct-response",t)}showCandidateCorrection(t){for(let e of this.interactionElements)e.toggleCandidateCorrection?.(t);this.updateControlState("item-show-candidate-correction",t)}afterResponseVariableUpdated(){this.showCandidateCorrection(!1)}updateControlState(t,e){let r=this.getRootNode();for(;;){if(r.querySelectorAll(t).forEach(n=>n.shown=e),!(r instanceof ShadowRoot))return;r=r.host.getRootNode()}}};var zh=class extends ie{#t=t=>{let e=t.detail;this.assessmentItem?.showCorrectResponse?.(e),this.updateControlState("item-show-correct-response",e)};#e=t=>{let e=t.detail;this.assessmentItem?.showCandidateCorrection?.(e),this.updateControlState("item-show-candidate-correction",e)};#r=t=>{this.assessmentItem?.showCorrectResponse?.(!1),this.configContext={...this.configContext,correctResponseMode:t.detail}};constructor(){super(),this.addEventListener("item-show-correct-response",this.#t),this.addEventListener("item-show-candidate-correction",this.#e),this.addEventListener("item-switch-correct-response-mode",this.#r)}updateControlState(t,e){this.querySelectorAll(t).forEach(r=>r.shown=e)}disconnectedCallback(){this.removeEventListener("item-show-correct-response",this.#t),this.removeEventListener("item-show-candidate-correction",this.#e),this.removeEventListener("item-switch-correct-response-mode",this.#r),super.disconnectedCallback()}};var jh=class extends st{#t=t=>{this.activeAssessmentItem?.showCorrectResponse?.(t.detail)};#e=t=>{this.activeAssessmentItem?.showCandidateCorrection?.(t.detail)};constructor(){super(),this.addEventListener("test-show-correct-response",this.#t),this.addEventListener("test-show-candidate-correction",this.#e)}disconnectedCallback(){this.removeEventListener("test-show-correct-response",this.#t),this.removeEventListener("test-show-candidate-correction",this.#e),super.disconnectedCallback()}afterAttemptEnded(t,e,r){if(!t||!e?.showSolution)return;let n=t;n.showCandidateCorrection?.(!0),n.showCorrectResponse?.(r)}},Fh=class extends He{updateAssessmentItemView(t,e){t.showCorrectResponse?.(e==="scorer")}},Bh=class extends Pr{constructor(){super(),this.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("test-show-correct-response",{detail:!0,bubbles:!0}))})}};var wc=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},hi=class extends C{constructor(){super(...arguments),this.label="Correct response mode",this._options={internal:"Internal",full:"Full (copy)"}}#t(t){this.dispatchEvent(new CustomEvent("item-switch-correct-response-mode",{detail:t,bubbles:!0}))}render(){return b`
9503
9503
  <label part="label" for="modeSelect">${this.label}</label>
9504
9504
  <select
9505
9505
  part="select"
@@ -9510,44 +9510,44 @@ CES.load();
9510
9510
  ${this._options[t]}
9511
9511
  </option>`)}
9512
9512
  </select>
9513
- `}};wc([T({context:pt,subscribe:!0})],ho.prototype,"itemContext",void 0);wc([p({type:String})],ho.prototype,"label",void 0);wc([_()],ho.prototype,"_options",void 0);var Uh=q`
9513
+ `}};wc([T({context:pt,subscribe:!0})],hi.prototype,"itemContext",void 0);wc([p({type:String})],hi.prototype,"label",void 0);wc([_()],hi.prototype,"_options",void 0);var Uh=q`
9514
9514
  display: inline-flex;
9515
9515
  align-items: center;
9516
9516
  cursor: pointer;
9517
9517
  padding: 0.5rem 1rem;
9518
9518
  border-radius: 0.25rem;
9519
9519
  user-select: none;
9520
- `,ti=q`
9520
+ `,tn=q`
9521
9521
  background-color: lightgray;
9522
9522
  ${Uh};
9523
- `,ei=q`
9523
+ `,en=q`
9524
9524
  cursor: not-allowed;
9525
9525
  opacity: 0.8;
9526
- `,bz=q`
9526
+ `,gz=q`
9527
9527
  ${Uh};
9528
9528
  border: 1px solid gray;
9529
- `;var ri=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Pe=class extends C{static{this.styles=q`
9529
+ `;var rn=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Pe=class extends C{static{this.styles=q`
9530
9530
  :host {
9531
- ${ti};
9531
+ ${tn};
9532
9532
  }
9533
9533
  :host([disabled]) {
9534
- ${ei};
9534
+ ${en};
9535
9535
  }
9536
- `}#t;#e;constructor(){super(),this.shown=!1,this.disabled=!1,this.showCandidateCorrectionText="Show candidate correction",this.hideCandidateCorrectionText="Hide candidate correction",this.noCorrectResponseText="No correct response specified",this.#t=!1,this.#e=""}updated(){if(!this.#t||this.#e!==this.computedContext?.identifier){this.#e=this.computedContext?.identifier;let t=!!this.computedContext?.variables.some(r=>r.correctResponse),e=!!this.computedContext?.variables.some(r=>r.mapping?.mapEntries?.length>0||r.areaMapping?.areaMapEntries?.length>0);this.#t=t||e}this.disabled=!this.#t}#r(){this.disabled||this.dispatchEvent(new CustomEvent("item-show-candidate-correction",{detail:!this.shown,bubbles:!0}))}#i(){return this.disabled?this.noCorrectResponseText:this.shown?this.hideCandidateCorrectionText:this.showCandidateCorrectionText}render(){return b` <div @click="${this.#r}">${this.#i()}</div> `}};ri([T({context:me,subscribe:!0})],Pe.prototype,"computedContext",void 0);ri([p({type:Boolean,reflect:!0})],Pe.prototype,"shown",void 0);ri([p({type:Boolean,reflect:!0})],Pe.prototype,"disabled",void 0);ri([p({type:String})],Pe.prototype,"showCandidateCorrectionText",void 0);ri([p({type:String})],Pe.prototype,"hideCandidateCorrectionText",void 0);ri([p({type:String})],Pe.prototype,"noCorrectResponseText",void 0);var ii=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Me=class extends C{constructor(){super(...arguments),this.shown=!1,this.disabled=!1,this.showCorrectText="Show correct response",this.hideCorrectText="Hide correct response",this.noCorrectResponseText="No correct response specified",this.#t=!1,this.#e=""}static{this.styles=q`
9536
+ `}#t;#e;constructor(){super(),this.shown=!1,this.disabled=!1,this.showCandidateCorrectionText="Show candidate correction",this.hideCandidateCorrectionText="Hide candidate correction",this.noCorrectResponseText="No correct response specified",this.#t=!1,this.#e=""}updated(){if(!this.#t||this.#e!==this.computedContext?.identifier){this.#e=this.computedContext?.identifier;let t=!!this.computedContext?.variables.some(r=>r.correctResponse),e=!!this.computedContext?.variables.some(r=>r.mapping?.mapEntries?.length>0||r.areaMapping?.areaMapEntries?.length>0);this.#t=t||e}this.disabled=!this.#t}#r(){this.disabled||this.dispatchEvent(new CustomEvent("item-show-candidate-correction",{detail:!this.shown,bubbles:!0}))}#n(){return this.disabled?this.noCorrectResponseText:this.shown?this.hideCandidateCorrectionText:this.showCandidateCorrectionText}render(){return b` <div @click="${this.#r}">${this.#n()}</div> `}};rn([T({context:me,subscribe:!0})],Pe.prototype,"computedContext",void 0);rn([p({type:Boolean,reflect:!0})],Pe.prototype,"shown",void 0);rn([p({type:Boolean,reflect:!0})],Pe.prototype,"disabled",void 0);rn([p({type:String})],Pe.prototype,"showCandidateCorrectionText",void 0);rn([p({type:String})],Pe.prototype,"hideCandidateCorrectionText",void 0);rn([p({type:String})],Pe.prototype,"noCorrectResponseText",void 0);var nn=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Me=class extends C{constructor(){super(...arguments),this.shown=!1,this.disabled=!1,this.showCorrectText="Show correct response",this.hideCorrectText="Hide correct response",this.noCorrectResponseText="No correct response specified",this.#t=!1,this.#e=""}static{this.styles=q`
9537
9537
  :host {
9538
- ${ti};
9538
+ ${tn};
9539
9539
  }
9540
9540
  :host([disabled]) {
9541
- ${ei};
9541
+ ${en};
9542
9542
  }
9543
- `}#t;#e;updated(){if(!this.#t||this.#e!==this.computedContext?.identifier){this.#e=this.computedContext?.identifier;let t=!!this.computedContext?.variables.some(r=>r.correctResponse),e=!!this.computedContext?.variables.some(r=>r.mapping?.mapEntries?.length>0||r.areaMapping?.areaMapEntries?.length>0);this.#t=t||e}this.disabled=!this.#t}#r(){this.disabled||this.dispatchEvent(new CustomEvent("item-show-correct-response",{detail:!this.shown,bubbles:!0}))}#i(){return this.disabled?this.noCorrectResponseText:this.shown?this.hideCorrectText:this.showCorrectText}render(){return b` <div @click="${this.#r}">${this.#i()}</div> `}};ii([T({context:me,subscribe:!0})],Me.prototype,"computedContext",void 0);ii([p({type:Boolean,reflect:!0})],Me.prototype,"shown",void 0);ii([p({type:Boolean,reflect:!0})],Me.prototype,"disabled",void 0);ii([p({type:String})],Me.prototype,"showCorrectText",void 0);ii([p({type:String})],Me.prototype,"hideCorrectText",void 0);ii([p({type:String})],Me.prototype,"noCorrectResponseText",void 0);var oi=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},De=class extends C{constructor(){super(...arguments),this.shown=!1,this.disabled=!1,this.showCorrectText="Show correct response",this.hideCorrectText="Hide correct response",this.noCorrectResponseText="No correct response specified"}static{this.styles=q`
9543
+ `}#t;#e;updated(){if(!this.#t||this.#e!==this.computedContext?.identifier){this.#e=this.computedContext?.identifier;let t=!!this.computedContext?.variables.some(r=>r.correctResponse),e=!!this.computedContext?.variables.some(r=>r.mapping?.mapEntries?.length>0||r.areaMapping?.areaMapEntries?.length>0);this.#t=t||e}this.disabled=!this.#t}#r(){this.disabled||this.dispatchEvent(new CustomEvent("item-show-correct-response",{detail:!this.shown,bubbles:!0}))}#n(){return this.disabled?this.noCorrectResponseText:this.shown?this.hideCorrectText:this.showCorrectText}render(){return b` <div @click="${this.#r}">${this.#n()}</div> `}};nn([T({context:me,subscribe:!0})],Me.prototype,"computedContext",void 0);nn([p({type:Boolean,reflect:!0})],Me.prototype,"shown",void 0);nn([p({type:Boolean,reflect:!0})],Me.prototype,"disabled",void 0);nn([p({type:String})],Me.prototype,"showCorrectText",void 0);nn([p({type:String})],Me.prototype,"hideCorrectText",void 0);nn([p({type:String})],Me.prototype,"noCorrectResponseText",void 0);var on=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},De=class extends C{constructor(){super(...arguments),this.shown=!1,this.disabled=!1,this.showCorrectText="Show correct response",this.hideCorrectText="Hide correct response",this.noCorrectResponseText="No correct response specified"}static{this.styles=q`
9544
9544
  :host {
9545
- ${ti};
9545
+ ${tn};
9546
9546
  }
9547
9547
  :host([disabled]) {
9548
- ${ei};
9548
+ ${en};
9549
9549
  }
9550
- `}#t;willUpdate(t){let e=this.computedContext?.testParts.flatMap(r=>r.sections.flatMap(i=>i.items)).find(r=>r.active);if(this.#t!==e&&(this.shown=!1,this.#t=e),e){let r=!!e?.variables?.some(o=>o.correctResponse),i=!!e?.variables?.some(o=>o.mapping?.mapEntries?.length>0||o.areaMapping?.areaMapEntries?.length>0);this.disabled=!r&&!i}else this.disabled=!0}#e(){this.disabled||(this.shown=!this.shown,this.dispatchEvent(new CustomEvent("test-show-correct-response",{detail:this.shown,bubbles:!0})))}#r(){return this.disabled?this.noCorrectResponseText:this.shown?this.hideCorrectText:this.showCorrectText}render(){return b` <div @click="${this.#e}">${this.#r()}</div> `}};oi([T({context:z,subscribe:!0})],De.prototype,"computedContext",void 0);oi([p({type:Boolean,reflect:!0})],De.prototype,"shown",void 0);oi([p({type:Boolean,reflect:!0})],De.prototype,"disabled",void 0);oi([p({type:String})],De.prototype,"showCorrectText",void 0);oi([p({type:String})],De.prototype,"hideCorrectText",void 0);oi([p({type:String})],De.prototype,"noCorrectResponseText",void 0);var Qt=n=>{class t extends G(n){toggleInternalCorrectResponse(r){this.showFullCorrectResponse||this.toggleFullCorrectResponse(r)}afterCache(){super.afterCache(),this.showCorrectResponse&&this.toggleInternalCorrectResponse(!0),this.showCandidateCorrection&&this.toggleCandidateCorrection(!0),this.showFullCorrectResponse&&this.toggleFullCorrectResponse(!0)}}return t};var qc=class extends Qt(sr){};var Cc=class extends hr(ar){};var lm=function(n,t,e,r){var i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,t,e,r);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(i<3?s(o):i>3?s(t,e,o):s(t,e))||o);return i>3&&o&&Object.defineProperty(t,e,o),o},Xs=class extends qt(Q){static{this.styles=[Q.styles,it,q`
9550
+ `}#t;willUpdate(t){let e=this.computedContext?.testParts.flatMap(r=>r.sections.flatMap(n=>n.items)).find(r=>r.active);if(this.#t!==e&&(this.shown=!1,this.#t=e),e){let r=!!e?.variables?.some(i=>i.correctResponse),n=!!e?.variables?.some(i=>i.mapping?.mapEntries?.length>0||i.areaMapping?.areaMapEntries?.length>0);this.disabled=!r&&!n}else this.disabled=!0}#e(){this.disabled||(this.shown=!this.shown,this.dispatchEvent(new CustomEvent("test-show-correct-response",{detail:this.shown,bubbles:!0})))}#r(){return this.disabled?this.noCorrectResponseText:this.shown?this.hideCorrectText:this.showCorrectText}render(){return b` <div @click="${this.#e}">${this.#r()}</div> `}};on([T({context:z,subscribe:!0})],De.prototype,"computedContext",void 0);on([p({type:Boolean,reflect:!0})],De.prototype,"shown",void 0);on([p({type:Boolean,reflect:!0})],De.prototype,"disabled",void 0);on([p({type:String})],De.prototype,"showCorrectText",void 0);on([p({type:String})],De.prototype,"hideCorrectText",void 0);on([p({type:String})],De.prototype,"noCorrectResponseText",void 0);var Qt=o=>{class t extends G(o){toggleInternalCorrectResponse(r){this.showFullCorrectResponse||this.toggleFullCorrectResponse(r)}afterCache(){super.afterCache(),this.showCorrectResponse&&this.toggleInternalCorrectResponse(!0),this.showCandidateCorrection&&this.toggleCandidateCorrection(!0),this.showFullCorrectResponse&&this.toggleFullCorrectResponse(!0)}}return t};var qc=class extends Qt(sr){};var Cc=class extends hr(ar){};var cm=function(o,t,e,r){var n=arguments.length,i=n<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(o,t,e,r);else for(var a=o.length-1;a>=0;a--)(s=o[a])&&(i=(n<3?s(i):n>3?s(t,e,i):s(t,e))||i);return n>3&&i&&Object.defineProperty(t,e,i),i},Xs=class extends qt(Q){static{this.styles=[Q.styles,nt,q`
9551
9551
  /*
9552
9552
  * Placement only — the glyph itself is the theme's, keyed on ::part(correction-*). That split
9553
9553
  * is the contract in correction.styles.ts, which deliberately leaves the shared badge in flow
@@ -9610,7 +9610,7 @@ CES.load();
9610
9610
  }
9611
9611
  `]}render(){return b`${this.renderPrompt()}${this.renderTextarea()}
9612
9612
  <span part=${this.correctionPart} aria-hidden="true"></span>
9613
- ${this.renderValidationMessage()}`}};lm([p({attribute:"candidate-correction",reflect:!0,noAccessor:!0})],Xs.prototype,"candidateCorrection",void 0);var Ys=n=>n?(Array.isArray(n)?n:[n]).map(e=>{let[r,i]=e.split(" ");return{source:r,target:i}}):[];var kc=class extends Qt(Vr){toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let e=Ys(this.correctResponse);for(let r of this.querySelectorAll("qti-gap")){let i=r.getAttribute("identifier"),o=r.drags;for(let s of o)s.candidateCorrection=null,t&&e.some(a=>a.source===s.identifier&&a.target===i)?s.candidateCorrection="correct":t&&(s.candidateCorrection="incorrect")}}};var Ec=class extends G(Pt){#t=[];toggleInternalCorrectResponse(t){super.toggleInternalCorrectResponse(t);let e=this.correctResponse,r=this.#t;this.#t=t&&e?Array.isArray(e)?[...e]:[e]:[],this.requestUpdate("correctLines",r)}renderSupplementalLines(){return H(this.#t,t=>t,t=>vi`
9613
+ ${this.renderValidationMessage()}`}};cm([p({attribute:"candidate-correction",reflect:!0,noAccessor:!0})],Xs.prototype,"candidateCorrection",void 0);var Ys=o=>o?(Array.isArray(o)?o:[o]).map(e=>{let[r,n]=e.split(" ");return{source:r,target:n}}):[];var kc=class extends Qt(Vr){toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let e=Ys(this.correctResponse);for(let r of this.querySelectorAll("qti-gap")){let n=r.getAttribute("identifier"),i=r.drags;for(let s of i)s.candidateCorrection=null,t&&e.some(a=>a.source===s.identifier&&a.target===n)?s.candidateCorrection="correct":t&&(s.candidateCorrection="incorrect")}}};var Ec=class extends G(Pt){#t=[];toggleInternalCorrectResponse(t){super.toggleInternalCorrectResponse(t);let e=this.correctResponse,r=this.#t;this.#t=t&&e?Array.isArray(e)?[...e]:[e]:[],this.requestUpdate("correctLines",r)}renderSupplementalLines(){return H(this.#t,t=>t,t=>wn`
9614
9614
  <line
9615
9615
  part="correct-line"
9616
9616
  x1=${parseInt(this.querySelector(`[identifier=${t.split(" ")[0]}]`).style.left)}
@@ -9621,7 +9621,7 @@ CES.load();
9621
9621
  stroke-width="3"
9622
9622
  stroke-dasharray="5,5"
9623
9623
  />
9624
- `)}};var Sc=class extends Qt(zr){};var Ac=class extends G(jr){resolvePinColor(t){let e=t;return e.matches(":state(candidate-incorrect)")?"var(--qti-incorrect)":e.matches(":state(candidate-correct)")?"var(--qti-correct)":e.matches(":state(correct-response)")?"var(--qti-answer-border)":super.resolvePinColor(t)}toggleInternalCorrectResponse(t){super.toggleInternalCorrectResponse(t);let e=this.correctResponse,r=e?Array.isArray(e)?e:[e]:[];for(let i of this._choiceElements){let o=r.indexOf(i.identifier);i.orderCorrect=t&&o>=0?o+1:null}this.refreshLocatorPins()}toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let e=this.correctResponse,r=e?Array.isArray(e)?e:[e]:[];for(let i of this._choiceElements)i.candidateCorrection=null,t&&i.order!=null&&(i.candidateCorrection=r[i.order-1]===i.identifier?"correct":"incorrect");this.refreshLocatorPins()}};var Ic=class extends hr(Fr){};var _c=class extends hr(Br){};var Tc=class extends G(tt){static get styles(){return[tt.styles,it,q`
9624
+ `)}};var Sc=class extends Qt(zr){};var Ac=class extends G(jr){resolvePinColor(t){let e=t;return e.matches(":state(candidate-incorrect)")?"var(--qti-incorrect)":e.matches(":state(candidate-correct)")?"var(--qti-correct)":e.matches(":state(correct-response)")?"var(--qti-answer-border)":super.resolvePinColor(t)}toggleInternalCorrectResponse(t){super.toggleInternalCorrectResponse(t);let e=this.correctResponse,r=e?Array.isArray(e)?e:[e]:[];for(let n of this._choiceElements){let i=r.indexOf(n.identifier);n.orderCorrect=t&&i>=0?i+1:null}this.refreshLocatorPins()}toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let e=this.correctResponse,r=e?Array.isArray(e)?e:[e]:[];for(let n of this._choiceElements)n.candidateCorrection=null,t&&n.order!=null&&(n.candidateCorrection=r[n.order-1]===n.identifier?"correct":"incorrect");this.refreshLocatorPins()}};var Ic=class extends hr(Fr){};var _c=class extends hr(Br){};var Tc=class extends G(tt){static get styles(){return[tt.styles,nt,q`
9625
9625
  /*
9626
9626
  * Only the TRAILING inset — the leading gap is the shared --qti-glyph-gap, like every other
9627
9627
  * badge. This used to set both margins to --qti-gap (1rem), twice everyone else's 0.5em, on
@@ -9640,15 +9640,15 @@ CES.load();
9640
9640
  `]}toggleInternalCorrectResponse(t){this.showFullCorrectResponse||this.toggleFullCorrectResponse(t)}get withholdsFullCorrectResponseWhenCorrect(){return!1}render(){return b`
9641
9641
  ${this.renderTrigger()} ${this.renderMenu()} ${this.renderValidationMessage()}
9642
9642
  <span part=${this.correctionPart} aria-hidden="true"></span>
9643
- `}};var Rc=class extends Qt(ce){#t=new Set;toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let e=Ys(this.correctResponse);this.#t=t?new Set(e.map(r=>`${r.source} ${r.target}`)):new Set;for(let r of this.targetChoices){let i=r.getAttribute("identifier"),o=r.drags;for(let s of o)s.candidateCorrection=null,t&&(s.candidateCorrection=this.#t.has(`${s.identifier} ${i}`)?"correct":"incorrect")}this.requestUpdate()}getCellStateVariant(t,e){return!this.showCandidateCorrection||!e?"":this.#t.has(t)?"correct":"incorrect"}};function dm(n){if(n.length===0)return new Set;let t=new Array(n.length).fill(1),e=new Array(n.length).fill(-1);for(let o=0;o<n.length;o++)for(let s=0;s<o;s++)n[s]<n[o]&&t[s]+1>t[o]&&(t[o]=t[s]+1,e[o]=s);let r=0;for(let o=1;o<n.length;o++)t[o]>t[r]&&(r=o);let i=new Set;for(let o=r;o!==-1;o=e[o])i.add(o);return i}function Hh(n,t){let e=new Map(t.map((a,l)=>[a,l])),r=n.filter(a=>e.has(a)),i=r.map(a=>e.get(a)),o=dm(i),s=new Set;return o.forEach(a=>s.add(r[a])),s}var Oc=class extends Qt(Oe){toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let r=Array.from(this.shadowRoot.querySelectorAll("[part~='drop']")).flatMap(c=>this.chipsIn(c));for(let c of r)c.candidateCorrection=null;if(!t)return;let i=this.correctResponse,s=(i?Array.isArray(i)?i:[i]:[]).map((c,d)=>{let[h,f]=c.split(" "),m=f?.startsWith("droplist")?parseInt(f.slice(8),10):d;return{identifier:h,dropIndex:Number.isNaN(m)?d:m}}).filter(c=>c.identifier).sort((c,d)=>c.dropIndex-d.dropIndex).map(c=>c.identifier);if(s.length===0)return;let a=r.map(c=>({choice:c,identifier:c.getAttribute("identifier")})).filter(c=>!!c.identifier),l=Hh(a.map(c=>c.identifier),s);for(let{choice:c,identifier:d}of a)c.candidateCorrection=l.has(d)?"correct":"incorrect"}};var Pc=class extends G(W){toggleInternalCorrectResponse(t){super.toggleInternalCorrectResponse(t);let e=this.responseVariable,r=e?.correctResponse??this.correctResponse;this.correctResponse=t?r:e?.cardinality==="single"?"":[];let i=`correct-response-container-${this.responseIdentifier}`;if(this.parentElement?.querySelectorAll(`#${i}`).forEach(f=>f.remove()),!t){this.enable();return}if(this.disable(),!this.correctResponse)return;let o=document.createElement("div");o.id=i,o.className="pci-correct-response-container",Object.assign(o.style,{position:"relative",marginTop:"20px",border:"2px solid green",padding:"16px",borderRadius:"4px",backgroundColor:"rgba(0, 128, 0, 0.05)"});let s=document.createElement("div");s.textContent="Correct Response:",Object.assign(s.style,{fontWeight:"bold",marginBottom:"10px",color:"green"}),o.append(s);let a=this.cloneNode(!1);a.removeAttribute("id"),a.removeAttribute("show-correct-response"),a.removeAttribute("show-full-correct-response"),a.removeAttribute("show-candidate-correction"),a.isFullCorrectResponse=!0;let l=this.responseIdentifier;a.responseIdentifier=`${l}-correct`;for(let f of Array.from(this.children))f.tagName.startsWith("QTI-")&&a.append(f.cloneNode(!0));let c=this.correctResponse,d=e?.cardinality??(Array.isArray(c)?"multiple":"single"),h=e?.baseType??"string";a.status="solution",a.responseDeclaration={baseType:h,cardinality:d,correctResponse:{value:c}},a.addEventListener("qti-portable-custom-interaction-loaded",()=>{let f=a.responseVariablesToQtiVariableJSON(c,d,h);a.sendMessageToIframe("setBoundTo",{[l]:f}),a.sendMessageToIframe("setState",{state:"review"})},{once:!0}),a.style.pointerEvents="none",o.append(a),this.after(o)}};var Mc=class extends G(dt){#t=[];#e=[];static{this.styles=[dt.styles,q`
9643
+ `}};var Rc=class extends Qt(ce){#t=new Set;toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let e=Ys(this.correctResponse);this.#t=t?new Set(e.map(r=>`${r.source} ${r.target}`)):new Set;for(let r of this.targetChoices){let n=r.getAttribute("identifier"),i=r.drags;for(let s of i)s.candidateCorrection=null,t&&(s.candidateCorrection=this.#t.has(`${s.identifier} ${n}`)?"correct":"incorrect")}this.requestUpdate()}getCellStateVariant(t,e){return!this.showCandidateCorrection||!e?"":this.#t.has(t)?"correct":"incorrect"}};function lm(o){if(o.length===0)return new Set;let t=new Array(o.length).fill(1),e=new Array(o.length).fill(-1);for(let i=0;i<o.length;i++)for(let s=0;s<i;s++)o[s]<o[i]&&t[s]+1>t[i]&&(t[i]=t[s]+1,e[i]=s);let r=0;for(let i=1;i<o.length;i++)t[i]>t[r]&&(r=i);let n=new Set;for(let i=r;i!==-1;i=e[i])n.add(i);return n}function Hh(o,t){let e=new Map(t.map((a,l)=>[a,l])),r=o.filter(a=>e.has(a)),n=r.map(a=>e.get(a)),i=lm(n),s=new Set;return i.forEach(a=>s.add(r[a])),s}var Oc=class extends Qt(Oe){toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let r=Array.from(this.shadowRoot.querySelectorAll("[part~='drop']")).flatMap(c=>this.chipsIn(c));for(let c of r)c.candidateCorrection=null;if(!t)return;let n=this.correctResponse,s=(n?Array.isArray(n)?n:[n]:[]).map((c,d)=>{let[h,f]=c.split(" "),m=f?.startsWith("droplist")?parseInt(f.slice(8),10):d;return{identifier:h,dropIndex:Number.isNaN(m)?d:m}}).filter(c=>c.identifier).sort((c,d)=>c.dropIndex-d.dropIndex).map(c=>c.identifier);if(s.length===0)return;let a=r.map(c=>({choice:c,identifier:c.getAttribute("identifier")})).filter(c=>!!c.identifier),l=Hh(a.map(c=>c.identifier),s);for(let{choice:c,identifier:d}of a)c.candidateCorrection=l.has(d)?"correct":"incorrect"}};var Pc=class extends G(W){toggleInternalCorrectResponse(t){super.toggleInternalCorrectResponse(t);let e=this.responseVariable,r=e?.correctResponse??this.correctResponse;this.correctResponse=t?r:e?.cardinality==="single"?"":[];let n=`correct-response-container-${this.responseIdentifier}`;if(this.parentElement?.querySelectorAll(`#${n}`).forEach(f=>f.remove()),!t){this.enable();return}if(this.disable(),!this.correctResponse)return;let i=document.createElement("div");i.id=n,i.className="pci-correct-response-container",Object.assign(i.style,{position:"relative",marginTop:"20px",border:"2px solid green",padding:"16px",borderRadius:"4px",backgroundColor:"rgba(0, 128, 0, 0.05)"});let s=document.createElement("div");s.textContent="Correct Response:",Object.assign(s.style,{fontWeight:"bold",marginBottom:"10px",color:"green"}),i.append(s);let a=this.cloneNode(!1);a.removeAttribute("id"),a.removeAttribute("show-correct-response"),a.removeAttribute("show-full-correct-response"),a.removeAttribute("show-candidate-correction"),a.isFullCorrectResponse=!0;let l=this.responseIdentifier;a.responseIdentifier=`${l}-correct`;for(let f of Array.from(this.children))f.tagName.startsWith("QTI-")&&a.append(f.cloneNode(!0));let c=this.correctResponse,d=e?.cardinality??(Array.isArray(c)?"multiple":"single"),h=e?.baseType??"string";a.status="solution",a.responseDeclaration={baseType:h,cardinality:d,correctResponse:{value:c}},a.addEventListener("qti-portable-custom-interaction-loaded",()=>{let f=a.responseVariablesToQtiVariableJSON(c,d,h);a.sendMessageToIframe("setBoundTo",{[l]:f}),a.sendMessageToIframe("setState",{state:"review"})},{once:!0}),a.style.pointerEvents="none",i.append(a),this.after(i)}};var Mc=class extends G(dt){#t=[];#e=[];static{this.styles=[dt.styles,q`
9644
9644
  [part~='correct'] {
9645
9645
  --qti-select-point-marker-color: var(--qti-correct);
9646
9646
  }
9647
9647
  [part~='incorrect'] {
9648
9648
  --qti-select-point-marker-color: var(--qti-incorrect);
9649
9649
  }
9650
- `]}toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let e=this.#e;if(this.#e=[],!t){this.requestUpdate("responseCorrection",e);return}let r=this._effectiveAreaEntries,i=this.responseVariable?.baseType,o=this.correctResponse;for(let s of this.responsePoints){let a=r.some(l=>J.isPointInArea(`${s.x} ${s.y}`,`${l.shape},${l.coords}`,i));!r.length&&o&&(a=(Array.isArray(o)?o:[o]).some(c=>{let[d,h]=c.split(" ").map(Number);return Number.isFinite(d)&&Number.isFinite(h)&&Math.hypot(s.x-d,s.y-h)<=10})),this.#e.push(a)}this.requestUpdate("responseCorrection",e)}toggleInternalCorrectResponse(t){if(super.toggleInternalCorrectResponse(t),!t){let i=this.#t;this.#t=[],this.requestUpdate("correctAreas",i);return}let e=this._effectiveAreaEntries;if(!e.length){let i=this.correctResponse,o=i?Array.isArray(i)?i:[i]:[];if(o.some(s=>s.split(" ").length<2)){console.error("No valid correct responses found.");return}e=o.map(s=>({shape:"circle",coords:`${s.split(" ").join(",")},10`,defaultValue:1,mappedValue:1}))}let r=this.#t;this.#t=e.map(i=>({shape:i.shape,coords:i.coords})),this.requestUpdate("correctAreas",r)}pointPart(t,e){let r=this.#e[e];return r===void 0?"point":`point ${r?"correct":"incorrect"}`}renderSupplementalLayer(){return H(this.#t,t=>`${t.shape}:${t.coords}`,(t,e)=>b`<div
9651
- style=${Yn({position:"absolute",pointerEvents:"none",backgroundColor:"var(--qti-correct)",opacity:"0.5"})}
9650
+ `]}toggleCandidateCorrection(t){super.toggleCandidateCorrection(t);let e=this.#e;if(this.#e=[],!t){this.requestUpdate("responseCorrection",e);return}let r=this._effectiveAreaEntries,n=this.responseVariable?.baseType,i=this.correctResponse;for(let s of this.responsePoints){let a=r.some(l=>J.isPointInArea(`${s.x} ${s.y}`,`${l.shape},${l.coords}`,n));!r.length&&i&&(a=(Array.isArray(i)?i:[i]).some(c=>{let[d,h]=c.split(" ").map(Number);return Number.isFinite(d)&&Number.isFinite(h)&&Math.hypot(s.x-d,s.y-h)<=10})),this.#e.push(a)}this.requestUpdate("responseCorrection",e)}toggleInternalCorrectResponse(t){if(super.toggleInternalCorrectResponse(t),!t){let n=this.#t;this.#t=[],this.requestUpdate("correctAreas",n);return}let e=this._effectiveAreaEntries;if(!e.length){let n=this.correctResponse,i=n?Array.isArray(n)?n:[n]:[];if(i.some(s=>s.split(" ").length<2)){console.error("No valid correct responses found.");return}e=i.map(s=>({shape:"circle",coords:`${s.split(" ").join(",")},10`,defaultValue:1,mappedValue:1}))}let r=this.#t;this.#t=e.map(n=>({shape:n.shape,coords:n.coords})),this.requestUpdate("correctAreas",r)}pointPart(t,e){let r=this.#e[e];return r===void 0?"point":`point ${r?"correct":"incorrect"}`}renderSupplementalLayer(){return H(this.#t,t=>`${t.shape}:${t.coords}`,(t,e)=>b`<div
9651
+ style=${Yo({position:"absolute",pointerEvents:"none",backgroundColor:"var(--qti-correct)",opacity:"0.5"})}
9652
9652
  data-correction-area
9653
9653
  data-coord=${t.coords}
9654
9654
  data-shape=${t.shape}
@@ -9666,9 +9666,9 @@ CES.load();
9666
9666
  border-radius: 9999px;
9667
9667
  left: var(--value-percentage-correct);
9668
9668
  }
9669
- `]}toggleInternalCorrectResponse(t){super.toggleInternalCorrectResponse(t);let e=this.correctResponse,r=Array.isArray(e)?e[0]:e,i=t&&r?parseFloat(r):NaN,o=this.#t;if(this.#t=Number.isFinite(i)?i:null,this.#t!==null){let s=(this.#t-this.min)/(this.max-this.min)*100;this.style.setProperty("--value-percentage-correct",`${s}%`)}else this.style.removeProperty("--value-percentage-correct");this.requestUpdate("correctResponseNumber",o)}renderRailSupplement(){return this.#t===null?P:b`<div id="knob-correct" part="knob-correct">
9669
+ `]}toggleInternalCorrectResponse(t){super.toggleInternalCorrectResponse(t);let e=this.correctResponse,r=Array.isArray(e)?e[0]:e,n=t&&r?parseFloat(r):NaN,i=this.#t;if(this.#t=Number.isFinite(n)?n:null,this.#t!==null){let s=(this.#t-this.min)/(this.max-this.min)*100;this.style.setProperty("--value-percentage-correct",`${s}%`)}else this.style.removeProperty("--value-percentage-correct");this.requestUpdate("correctResponseNumber",i)}renderRailSupplement(){return this.#t===null?P:b`<div id="knob-correct" part="knob-correct">
9670
9670
  <div id="value" part="value">${this.#t}</div>
9671
- </div>`}};var Nc=class extends G(at){static{this.styles=[at.styles,it,q`
9671
+ </div>`}};var Nc=class extends G(at){static{this.styles=[at.styles,nt,q`
9672
9672
  /*
9673
9673
  * The trailing inset only — size and leading gap come from the shared sheet.
9674
9674
  *
@@ -9697,11 +9697,11 @@ CES.load();
9697
9697
  background-color: var(--qti-bg);
9698
9698
  white-space: nowrap;
9699
9699
  }
9700
- `]}get correctness(){let t=this.responseVariable;if(!t)return super.correctness;if(t.value===null)return X.Incorrect;if(t.mapping){let e=t.mapping.mapEntries.reduce((r,i)=>Math.max(i.mappedValue,r),0);for(let r of t.mapping.mapEntries){let i=r.mapKey,o=t.value;if(r.caseSensitive||(i=i.toLowerCase(),o=o.toLowerCase()),i===o)return r.mappedValue===e?X.Correct:r.mappedValue<=(t.mapping.defaultValue||0)?X.Incorrect:X.PartiallyCorrect}}return t.correctResponse===t.value?X.Correct:X.Incorrect}toggleInternalCorrectResponse(t){this.showFullCorrectResponse||this.toggleFullCorrectResponse(t)}render(){return b`
9700
+ `]}get correctness(){let t=this.responseVariable;if(!t)return super.correctness;if(t.value===null)return X.Incorrect;if(t.mapping){let e=t.mapping.mapEntries.reduce((r,n)=>Math.max(n.mappedValue,r),0);for(let r of t.mapping.mapEntries){let n=r.mapKey,i=t.value;if(r.caseSensitive||(n=n.toLowerCase(),i=i.toLowerCase()),n===i)return r.mappedValue===e?X.Correct:r.mappedValue<=(t.mapping.defaultValue||0)?X.Incorrect:X.PartiallyCorrect}}return t.correctResponse===t.value?X.Correct:X.Incorrect}toggleInternalCorrectResponse(t){this.showFullCorrectResponse||this.toggleFullCorrectResponse(t)}render(){return b`
9701
9701
  ${this.renderAnswer()} ${this.renderInput()}
9702
9702
  <span part=${this.correctionPart} aria-hidden="true"></span>
9703
9703
  ${this.renderValidationMessage()}
9704
- `}};export{G as CandidateCorrectionMixin,hr as ChoiceCorrectionMixin,fc as CorrectResponseMixin,X as Correctness,ga as CustomStateSetShim,ba as INITIAL_SESSION_CONTEXT,ya as INITIAL_TEST_CONTEXT,D as Interaction,va as IsNullOrUndefined,At as ItemContainer,ho as ItemCorrectResponseMode,ji as ItemPrintVariables,Pe as ItemShowCandidateCorrection,Me as ItemShowCorrectResponse,rs as QtiAnd,Hr as QtiAnyN,rt as QtiAssessmentItem,Vh as QtiAssessmentItemCorrection,Nt as QtiAssessmentItemRef,ft as QtiAssessmentSection,_r as QtiAssessmentStimulusRef,Ta as QtiAssessmentStimulusRefConnectedEvent,Be as QtiAssessmentTest,Dr as QtiAssociableHotspot,sr as QtiAssociateInteraction,qc as QtiAssociateInteractionCorrection,Ki as QtiBaseValue,ar as QtiChoiceInteraction,Cc as QtiChoiceInteractionCorrection,$o as QtiCompanionMaterialsInfo,mt as QtiConditionExpression,is as QtiContainerSize,os as QtiContains,Ci as QtiContentBody,Tr as QtiContextDeclaration,ns as QtiCorrect,se as QtiCustomInteraction,ki as QtiCustomOperator,lr as QtiDefault,ss as QtiDelete,as as QtiDivide,cs as QtiDurationGte,ls as QtiDurationLt,Te as QtiEndAttemptInteraction,Zi as QtiEqual,Ji as QtiEqualRounded,A as QtiExpression,Q as QtiExtendedTextInteraction,Xs as QtiExtendedTextInteractionCorrection,nt as QtiFeedback,Lo as QtiFeedbackBlock,Vo as QtiFeedbackInline,ds as QtiFieldValue,tr as QtiGap,Fi as QtiGapImg,Vr as QtiGapMatchInteraction,kc as QtiGapMatchInteractionCorrection,Ce as QtiGapText,gc as QtiGapTextCorrection,hs as QtiGcd,Pt as QtiGraphicAssociateInteraction,Ec as QtiGraphicAssociateInteractionCorrection,zr as QtiGraphicGapMatchInteraction,Sc as QtiGraphicGapMatchInteractionCorrection,jr as QtiGraphicOrderInteraction,Ac as QtiGraphicOrderInteractionCorrection,ps as QtiGt,us as QtiGte,rr as QtiHotspotChoice,Gs as QtiHotspotChoiceCorrection,Fr as QtiHotspotInteraction,Ic as QtiHotspotInteractionCorrection,ir as QtiHottext,bc as QtiHottextCorrection,Br as QtiHottextInteraction,_c as QtiHottextInteractionCorrection,to as QtiIndex,Bi as QtiInlineChoice,tt as QtiInlineChoiceInteraction,Tc as QtiInlineChoiceInteractionCorrection,Wr as QtiInside,ms as QtiIntegerDivide,fs as QtiIntegerModulus,gs as QtiIntegerToFloat,bs as QtiIsNull,oe as QtiItem,zo as QtiItemBody,zh as QtiItemCorrection,kt as QtiItemSessionControl,ys as QtiLcm,Qr as QtiLookupOutcomeValue,vs as QtiLt,ws as QtiLte,ro as QtiMapResponse,eo as QtiMapResponsePoint,xs as QtiMatch,ce as QtiMatchInteraction,Rc as QtiMatchInteractionCorrection,io as QtiMathOperator,qs as QtiMax,Fn as QtiMediaInteraction,Cs as QtiMember,ks as QtiMin,Rr as QtiModalFeedback,Es as QtiMultiple,Ss as QtiNot,As as QtiNull,Is as QtiOr,Oe as QtiOrderInteraction,Oc as QtiOrderInteractionCorrection,_s as QtiOrdered,Rs as QtiOutcomeCondition,te as QtiOutcomeDeclaration,Ps as QtiOutcomeElse,Os as QtiOutcomeElseIf,Kr as QtiOutcomeIf,To as QtiOutcomeProcessing,ka as QtiOutcomeProcessingProcessor,oo as QtiPatternMatch,W as QtiPortableCustomInteraction,Pc as QtiPortableCustomInteractionCorrection,Qn as QtiPositionObjectInteraction,Gn as QtiPositionObjectStage,Ms as QtiPower,ht as QtiPrintedVariable,Ds as QtiProduct,gn as QtiPrompt,Ns as QtiRandom,dr as QtiRandomInteger,so as QtiRepeat,$s as QtiResponseCondition,ve as QtiResponseDeclaration,Vs as QtiResponseElse,Ls as QtiResponseElseIf,Jr as QtiResponseIf,Fo as QtiResponseProcessing,zs as QtiRound,Zr as QtiRoundTo,ee as QtiRubricBlock,gl as QtiRuleElement,dt as QtiSelectPointInteraction,Mc as QtiSelectPointInteractionCorrection,js as QtiSetCorrectResponse,hc as QtiSetCorrectResponseRule,Fs as QtiSetOutcomeValue,pc as QtiSetOutcomeValueRule,Bs as QtiSetTemplateValue,uc as QtiSetTemplateValueRule,It as QtiSimpleAssociableChoice,yc as QtiSimpleAssociableChoiceCorrection,_t as QtiSimpleChoice,vc as QtiSimpleChoiceCorrection,xt as QtiSliderInteraction,Dc as QtiSliderInteractionCorrection,ao as QtiStatsOperator,co as QtiStringMatch,Bo as QtiStylesheet,lo as QtiSubstring,Us as QtiSubtract,Hs as QtiSum,mc as QtiSumExpression,Uo as QtiTemplateConstraint,re as QtiTemplateDeclaration,Ho as QtiTemplateProcessing,He as QtiTest,Fh as QtiTestCorrection,Wo as QtiTestFeedback,we as QtiTestPart,Ii as QtiTestVariables,Ra as QtiTestVariablesExpression,at as QtiTextEntryInteraction,Nc as QtiTextEntryInteractionCorrection,Ws as QtiTruncate,ts as QtiUploadInteraction,Qs as QtiVariable,vr as QtiVariableDeclaration,J as ScoringHelper,Pr as TestCheckItem,Bh as TestCheckItemCorrection,St as TestContainer,Qe as TestEndAttempt,_i as TestItemLink,Ge as TestItemToSpeech,st as TestNavigation,jh as TestNavigationCorrection,Xe as TestNext,Mi as TestPagingButtonsStamp,Ye as TestPrev,Di as TestPrintContext,Ni as TestPrintVariables,Ke as TestScoringButtons,Mr as TestScoringFeedback,$i as TestSectionButtonsStamp,Li as TestSectionLink,De as TestShowCorrectResponse,Je as TestStamp,an as TestTtsNext,rn as TestTtsPause,en as TestTtsPlay,sn as TestTtsPrev,on as TestTtsResume,nn as TestTtsStop,Ht as TestView,zi as TestViewToggle,Eg as asSeed,O as boxSizing,cp as classifyCustomStateSupport,z as computedContext,me as computedItemContext,pt as configContext,Ct as convertNumberToUniversalFormat,it as correctionPart,hp as decimalSeparator,Vt as dropRegion,yD as getItemByUri,bD as getManifestInfo,ml as installCustomStateSetFallback,yr as interactionContext,dp as isSeed,j as itemContext,fl as itemContextVariables,lb as iterResponseValues,db as parsePair,pb as parsePoint,wa as parseResponseAttribute,Bu as qtiAndMixin,ut as qtiContext,Th as qtiInteractionElements,sm as qtiSubtractMixin,jt as qtiTransformItem,Ml as qtiTransformManifest,Ir as qtiTransformTest,_o as removeDoubleSlashes,zt as responseAttributeConverter,hb as serializePair,ub as serializePoint,xa as serializeResponseAttribute,Lt as sessionContext,ot as testContext,td as ttsContext,U as validationMessage};
9704
+ `}};export{G as CandidateCorrectionMixin,hr as ChoiceCorrectionMixin,fc as CorrectResponseMixin,X as Correctness,ga as CustomStateSetShim,ba as INITIAL_SESSION_CONTEXT,ya as INITIAL_TEST_CONTEXT,D as Interaction,va as IsNullOrUndefined,At as ItemContainer,hi as ItemCorrectResponseMode,Fn as ItemPrintVariables,Pe as ItemShowCandidateCorrection,Me as ItemShowCorrectResponse,rs as QtiAnd,Hr as QtiAnyN,rt as QtiAssessmentItem,Vh as QtiAssessmentItemCorrection,Nt as QtiAssessmentItemRef,ft as QtiAssessmentSection,_r as QtiAssessmentStimulusRef,Ta as QtiAssessmentStimulusRefConnectedEvent,Be as QtiAssessmentTest,Dr as QtiAssociableHotspot,sr as QtiAssociateInteraction,qc as QtiAssociateInteractionCorrection,Jn as QtiBaseValue,ar as QtiChoiceInteraction,Cc as QtiChoiceInteractionCorrection,$i as QtiCompanionMaterialsInfo,mt as QtiConditionExpression,ns as QtiContainerSize,is as QtiContains,kn as QtiContentBody,Tr as QtiContextDeclaration,os as QtiCorrect,se as QtiCustomInteraction,En as QtiCustomOperator,lr as QtiDefault,ss as QtiDelete,as as QtiDivide,cs as QtiDurationGte,ls as QtiDurationLt,Te as QtiEndAttemptInteraction,ti as QtiEqual,Zn as QtiEqualRounded,A as QtiExpression,Q as QtiExtendedTextInteraction,Xs as QtiExtendedTextInteractionCorrection,ot as QtiFeedback,Li as QtiFeedbackBlock,Vi as QtiFeedbackInline,ds as QtiFieldValue,tr as QtiGap,Bn as QtiGapImg,Vr as QtiGapMatchInteraction,kc as QtiGapMatchInteractionCorrection,Ce as QtiGapText,gc as QtiGapTextCorrection,hs as QtiGcd,Pt as QtiGraphicAssociateInteraction,Ec as QtiGraphicAssociateInteractionCorrection,zr as QtiGraphicGapMatchInteraction,Sc as QtiGraphicGapMatchInteractionCorrection,jr as QtiGraphicOrderInteraction,Ac as QtiGraphicOrderInteractionCorrection,ps as QtiGt,us as QtiGte,rr as QtiHotspotChoice,Gs as QtiHotspotChoiceCorrection,Fr as QtiHotspotInteraction,Ic as QtiHotspotInteractionCorrection,nr as QtiHottext,bc as QtiHottextCorrection,Br as QtiHottextInteraction,_c as QtiHottextInteractionCorrection,ei as QtiIndex,Un as QtiInlineChoice,tt as QtiInlineChoiceInteraction,Tc as QtiInlineChoiceInteractionCorrection,Wr as QtiInside,ms as QtiIntegerDivide,fs as QtiIntegerModulus,gs as QtiIntegerToFloat,bs as QtiIsNull,ie as QtiItem,zi as QtiItemBody,zh as QtiItemCorrection,kt as QtiItemSessionControl,ys as QtiLcm,Qr as QtiLookupOutcomeValue,vs as QtiLt,ws as QtiLte,ni as QtiMapResponse,ri as QtiMapResponsePoint,xs as QtiMatch,ce as QtiMatchInteraction,Rc as QtiMatchInteractionCorrection,ii as QtiMathOperator,qs as QtiMax,Fo as QtiMediaInteraction,Cs as QtiMember,ks as QtiMin,Rr as QtiModalFeedback,Es as QtiMultiple,Ss as QtiNot,As as QtiNull,Is as QtiOr,Oe as QtiOrderInteraction,Oc as QtiOrderInteractionCorrection,_s as QtiOrdered,Rs as QtiOutcomeCondition,te as QtiOutcomeDeclaration,Ps as QtiOutcomeElse,Os as QtiOutcomeElseIf,Kr as QtiOutcomeIf,Ti as QtiOutcomeProcessing,ka as QtiOutcomeProcessingProcessor,oi as QtiPatternMatch,W as QtiPortableCustomInteraction,Pc as QtiPortableCustomInteractionCorrection,Qo as QtiPositionObjectInteraction,Go as QtiPositionObjectStage,Ms as QtiPower,ht as QtiPrintedVariable,Ds as QtiProduct,go as QtiPrompt,Ns as QtiRandom,dr as QtiRandomInteger,ai as QtiRepeat,$s as QtiResponseCondition,ve as QtiResponseDeclaration,Vs as QtiResponseElse,Ls as QtiResponseElseIf,Jr as QtiResponseIf,Fi as QtiResponseProcessing,zs as QtiRound,Zr as QtiRoundTo,ee as QtiRubricBlock,gl as QtiRuleElement,dt as QtiSelectPointInteraction,Mc as QtiSelectPointInteractionCorrection,js as QtiSetCorrectResponse,hc as QtiSetCorrectResponseRule,Fs as QtiSetOutcomeValue,pc as QtiSetOutcomeValueRule,Bs as QtiSetTemplateValue,uc as QtiSetTemplateValueRule,It as QtiSimpleAssociableChoice,yc as QtiSimpleAssociableChoiceCorrection,_t as QtiSimpleChoice,vc as QtiSimpleChoiceCorrection,xt as QtiSliderInteraction,Dc as QtiSliderInteractionCorrection,ci as QtiStatsOperator,li as QtiStringMatch,Bi as QtiStylesheet,di as QtiSubstring,Us as QtiSubtract,Hs as QtiSum,mc as QtiSumExpression,Ui as QtiTemplateConstraint,re as QtiTemplateDeclaration,Hi as QtiTemplateProcessing,He as QtiTest,Fh as QtiTestCorrection,Wi as QtiTestFeedback,we as QtiTestPart,_n as QtiTestVariables,Ra as QtiTestVariablesExpression,at as QtiTextEntryInteraction,Nc as QtiTextEntryInteractionCorrection,Ws as QtiTruncate,ts as QtiUploadInteraction,Qs as QtiVariable,vr as QtiVariableDeclaration,J as ScoringHelper,Pr as TestCheckItem,Bh as TestCheckItemCorrection,St as TestContainer,Qe as TestEndAttempt,Tn as TestItemLink,Ge as TestItemToSpeech,st as TestNavigation,jh as TestNavigationCorrection,Xe as TestNext,Dn as TestPagingButtonsStamp,Ye as TestPrev,Nn as TestPrintContext,$n as TestPrintVariables,Ke as TestScoringButtons,Mr as TestScoringFeedback,Ln as TestSectionButtonsStamp,Vn as TestSectionLink,De as TestShowCorrectResponse,Je as TestStamp,so as TestTtsNext,ro as TestTtsPause,eo as TestTtsPlay,oo as TestTtsPrev,no as TestTtsResume,io as TestTtsStop,Ht as TestView,jn as TestViewToggle,kg as asSeed,O as boxSizing,cp as classifyCustomStateSupport,z as computedContext,me as computedItemContext,pt as configContext,Ct as convertNumberToUniversalFormat,nt as correctionPart,hp as decimalSeparator,Vt as dropRegion,bD as getItemByUri,gD as getManifestInfo,ml as installCustomStateSetFallback,yr as interactionContext,dp as isSeed,j as itemContext,fl as itemContextVariables,cb as iterResponseValues,lb as parsePair,hb as parsePoint,wa as parseResponseAttribute,Fu as qtiAndMixin,ut as qtiContext,Th as qtiInteractionElements,om as qtiSubtractMixin,jt as qtiTransformItem,Ml as qtiTransformManifest,Ir as qtiTransformTest,_i as removeDoubleSlashes,zt as responseAttributeConverter,db as serializePair,pb as serializePoint,xa as serializeResponseAttribute,Lt as sessionContext,it as testContext,td as ttsContext,U as validationMessage};
9705
9705
  /*! Bundled license information:
9706
9706
 
9707
9707
  @lit-labs/ssr-dom-shim/lib/element-internals.js: