@citolab/qti-components 6.9.1-beta.14 → 6.9.1-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js DELETED
@@ -1,4034 +0,0 @@
1
- var Br=Object.defineProperty,Yi=Object.defineProperties,Wi=Object.getOwnPropertyDescriptor,Ki=Object.getOwnPropertyDescriptors;var zr=Object.getOwnPropertySymbols;var Zi=Object.prototype.hasOwnProperty,Ji=Object.prototype.propertyIsEnumerable;var jr=s=>{throw TypeError(s)};var Fr=(s,t,e)=>t in s?Br(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,C=(s,t)=>{for(var e in t||(t={}))Zi.call(t,e)&&Fr(s,e,t[e]);if(zr)for(var e of zr(t))Ji.call(t,e)&&Fr(s,e,t[e]);return s},_=(s,t)=>Yi(s,Ki(t));var l=(s,t,e,r)=>{for(var i=r>1?void 0:r?Wi(t,e):t,o=s.length-1,n;o>=0;o--)(n=s[o])&&(i=(r?n(t,e,i):n(i))||i);return r&&i&&Br(t,e,i),i};var Xr=(s,t,e)=>t.has(s)||jr("Cannot "+e);var V=(s,t,e)=>(Xr(s,t,"read from private field"),e?e.call(s):t.get(s)),Jt=(s,t,e)=>t.has(s)?jr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(s):t.set(s,e),Gt=(s,t,e,r)=>(Xr(s,t,"write to private field"),r?r.call(s,e):t.set(s,e),e);var ie=class extends Event{constructor(t,e,r){super("context-request",{bubbles:!0,composed:!0}),this.context=t,this.callback=e,this.subscribe=r!=null?r:!1}};var Ee=class{constructor(t,e,r,i){var o;if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(n,a)=>{this.unsubscribe&&(this.unsubscribe!==a&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=n,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(n,a)),this.unsubscribe=a},this.host=t,e.context!==void 0){let n=e;this.context=n.context,this.callback=n.callback,this.subscribe=(o=n.subscribe)!=null?o:!1}else this.context=e,this.callback=r,this.subscribe=i!=null?i:!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new ie(this.context,this.t,this.subscribe))}};var yt=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 Qt=class extends Event{constructor(t){super("context-provider",{bubbles:!0,composed:!0}),this.context=t}},Ce=class extends yt{constructor(t,e,r){var i,o;super(e.context!==void 0?e.initialValue:r),this.onContextRequest=n=>{let a=n.composedPath()[0];n.context===this.context&&a!==this.host&&(n.stopPropagation(),this.addCallback(n.callback,a,n.subscribe))},this.onProviderRequest=n=>{let a=n.composedPath()[0];if(n.context!==this.context||a===this.host)return;let c=new Set;for(let[p,{consumerHost:f}]of this.subscriptions)c.has(p)||(c.add(p),f.dispatchEvent(new ie(this.context,p,!0)));n.stopPropagation()},this.host=t,e.context!==void 0?this.context=e.context:this.context=e,this.attachListeners(),(o=(i=this.host).addController)==null||o.call(i,this)}attachListeners(){this.host.addEventListener("context-request",this.onContextRequest),this.host.addEventListener("context-provider",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new Qt(this.context))}};function er({context:s}){return(t,e)=>{let r=new WeakMap;if(typeof e=="object")return e.addInitializer(function(){r.set(this,new Ce(this,{context:s}))}),{get(){return t.get.call(this)},set(i){var o;return(o=r.get(this))==null||o.setValue(i),t.set.call(this,i)},init(i){var o;return(o=r.get(this))==null||o.setValue(i),i}};{t.constructor.addInitializer(n=>{r.set(n,new Ce(n,{context:s}))});let i=Object.getOwnPropertyDescriptor(t,e),o;if(i===void 0){let n=new WeakMap;o={get(){return n.get(this)},set(a){r.get(this).setValue(a),n.set(this,a)},configurable:!0,enumerable:!0}}else{let n=i.set;o=_(C({},i),{set(a){r.get(this).setValue(a),n==null||n.call(this,a)}})}return void Object.defineProperty(t,e,o)}}}function J({context:s,subscribe:t}){return(e,r)=>{typeof r=="object"?r.addInitializer(function(){new Ee(this,{context:s,callback:i=>{e.set.call(this,i)},subscribe:t})}):e.constructor.addInitializer(i=>{new Ee(i,{context:s,callback:o=>{i[r]=o},subscribe:t})})}}var Yr=class{get shadowRoot(){return this.__host.__shadowRoot}constructor(t){this.ariaAtomic="",this.ariaAutoComplete="",this.ariaBraileLabel="",this.ariaBraileRoleDescription="",this.ariaBusy="",this.ariaChecked="",this.ariaColCount="",this.ariaColIndex="",this.ariaColSpan="",this.ariaCurrent="",this.ariaDescription="",this.ariaDisabled="",this.ariaExpanded="",this.ariaHasPopup="",this.ariaHidden="",this.ariaInvalid="",this.ariaKeyShortcuts="",this.ariaLabel="",this.ariaLevel="",this.ariaLive="",this.ariaModal="",this.ariaMultiLine="",this.ariaMultiSelectable="",this.ariaOrientation="",this.ariaPlaceholder="",this.ariaPosInSet="",this.ariaPressed="",this.ariaReadOnly="",this.ariaRequired="",this.ariaRoleDescription="",this.ariaRowCount="",this.ariaRowIndex="",this.ariaRowSpan="",this.ariaSelected="",this.ariaSetSize="",this.ariaSort="",this.ariaValueMax="",this.ariaValueMin="",this.ariaValueNow="",this.ariaValueText="",this.role="",this.form=null,this.labels=[],this.states=new Set,this.validationMessage="",this.validity={},this.willValidate=!0,this.__host=t}checkValidity(){return console.warn("`ElementInternals.checkValidity()` was called on the server.This method always returns true."),!0}reportValidity(){return!0}setFormValue(){}setValidity(){}};var Wr=new WeakMap,Oe=s=>{let t=Wr.get(s);return t===void 0&&Wr.set(s,t=new Map),t},Qi=class{constructor(){this.__shadowRootMode=null,this.__shadowRoot=null,this.__internals=null}get attributes(){return Array.from(Oe(this)).map(([t,e])=>({name:t,value:e}))}get shadowRoot(){return this.__shadowRootMode==="closed"?null:this.__shadowRoot}setAttribute(t,e){Oe(this).set(t,String(e))}removeAttribute(t){Oe(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 Oe(this).has(t)}attachShadow(t){let e={host:this};return this.__shadowRootMode=t.mode,t&&t.mode==="open"&&(this.__shadowRoot=e),e}attachInternals(){if(this.__internals!==null)throw new Error("Failed to execute 'attachInternals' on 'HTMLElement': ElementInternals for the specified element was already attached.");let t=new Yr(this);return this.__internals=t,t}getAttribute(t){let e=Oe(this).get(t);return e!=null?e:null}};var es=class extends Qi{},Kr=es;var ts=class{constructor(){this.__definitions=new Map}define(t,e){var r;if(this.__definitions.has(t))throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);this.__definitions.set(t,{ctor:e,observedAttributes:(r=e.observedAttributes)!=null?r:[]})}get(t){let e=this.__definitions.get(t);return e==null?void 0:e.ctor}},rs=ts;var Zr=new rs;var Ue=globalThis,xt=Ue.ShadowRoot&&(Ue.ShadyCSS===void 0||Ue.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,tr=Symbol(),Jr=new WeakMap,ze=class{constructor(t,e,r){if(this._$cssResult$=!0,r!==tr)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(xt&&t===void 0){let r=e!==void 0&&e.length===1;r&&(t=Jr.get(e)),t===void 0&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),r&&Jr.set(e,t))}return t}toString(){return this.cssText}},Gr=s=>new ze(typeof s=="string"?s:s+"",void 0,tr),b=(s,...t)=>{let e=s.length===1?s[0]:t.reduce((r,i,o)=>r+(n=>{if(n._$cssResult$===!0)return n.cssText;if(typeof n=="number")return n;throw Error("Value passed to 'css' function must be a 'css' function result: "+n+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+s[o+1],s[0]);return new ze(e,s,tr)},rr=(s,t)=>{if(xt)s.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let e of t){let r=document.createElement("style"),i=Ue.litNonce;i!==void 0&&r.setAttribute("nonce",i),r.textContent=e.cssText,s.appendChild(r)}},qt=xt||Ue.CSSStyleSheet===void 0?s=>s:s=>s instanceof CSSStyleSheet?(t=>{let e="";for(let r of t.cssRules)e+=r.cssText;return Gr(e)})(s):s;var{is,defineProperty:ss,getOwnPropertyDescriptor:os,getOwnPropertyNames:ns,getOwnPropertySymbols:as,getPrototypeOf:ls}=Object,N=globalThis,ti;(ti=N.customElements)!=null||(N.customElements=Zr);var Qr=N.trustedTypes,cs=Qr?Qr.emptyScript:"",ir=N.reactiveElementPolyfillSupport,Fe=(s,t)=>s,Be={toAttribute(s,t){switch(t){case Boolean:s=s?cs:null;break;case Object:case Array:s=s==null?s:JSON.stringify(s)}return s},fromAttribute(s,t){let e=s;switch(t){case Boolean:e=s!==null;break;case Number:e=s===null?null:Number(s);break;case Object:case Array:try{e=JSON.parse(s)}catch(r){e=null}}return e}},wt=(s,t)=>!is(s,t),ei={attribute:!0,type:String,converter:Be,reflect:!1,hasChanged:wt},ri,ii;(ri=Symbol.metadata)!=null||(Symbol.metadata=Symbol("metadata")),(ii=N.litPropertyMetadata)!=null||(N.litPropertyMetadata=new WeakMap);var si,G=class extends((si=globalThis.HTMLElement)!=null?si:Kr){static addInitializer(t){var e;this._$Ei(),((e=this.l)!=null?e:this.l=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=ei){if(e.state&&(e.attribute=!1),this._$Ei(),this.elementProperties.set(t,e),!e.noAccessor){let r=Symbol(),i=this.getPropertyDescriptor(t,r,e);i!==void 0&&ss(this.prototype,t,i)}}static getPropertyDescriptor(t,e,r){var n;let{get:i,set:o}=(n=os(this.prototype,t))!=null?n:{get(){return this[e]},set(a){this[e]=a}};return{get(){return i==null?void 0:i.call(this)},set(a){let c=i==null?void 0:i.call(this);o.call(this,a),this.requestUpdate(t,c,r)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){var e;return(e=this.elementProperties.get(t))!=null?e:ei}static _$Ei(){if(this.hasOwnProperty(Fe("elementProperties")))return;let t=ls(this);t.finalize(),t.l!==void 0&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(Fe("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(Fe("properties"))){let e=this.properties,r=[...ns(e),...as(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(qt(i))}else t!==void 0&&e.push(qt(t));return e}static _$Eu(t,e){let r=e.attribute;return r===!1?void 0:typeof r=="string"?r:typeof t=="string"?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){var t;this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),(t=this.constructor.l)==null||t.forEach(e=>e(this))}addController(t){var e,r;((e=this._$EO)!=null?e:this._$EO=new Set).add(t),this.renderRoot!==void 0&&this.isConnected&&((r=t.hostConnected)==null||r.call(t))}removeController(t){var e;(e=this._$EO)==null||e.delete(t)}_$E_(){let t=new Map,e=this.constructor.elementProperties;for(let r of e.keys())this.hasOwnProperty(r)&&(t.set(r,this[r]),delete this[r]);t.size>0&&(this._$Ep=t)}createRenderRoot(){var e;let t=(e=this.shadowRoot)!=null?e:this.attachShadow(this.constructor.shadowRootOptions);return rr(t,this.constructor.elementStyles),t}connectedCallback(){var t,e;(t=this.renderRoot)!=null||(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(e=this._$EO)==null||e.forEach(r=>{var i;return(i=r.hostConnected)==null?void 0:i.call(r)})}enableUpdating(t){}disconnectedCallback(){var t;(t=this._$EO)==null||t.forEach(e=>{var r;return(r=e.hostDisconnected)==null?void 0:r.call(e)})}attributeChangedCallback(t,e,r){this._$AK(t,r)}_$EC(t,e){var o;let r=this.constructor.elementProperties.get(t),i=this.constructor._$Eu(t,r);if(i!==void 0&&r.reflect===!0){let n=(((o=r.converter)==null?void 0:o.toAttribute)!==void 0?r.converter:Be).toAttribute(e,r.type);this._$Em=t,n==null?this.removeAttribute(i):this.setAttribute(i,n),this._$Em=null}}_$AK(t,e){var o;let r=this.constructor,i=r._$Eh.get(t);if(i!==void 0&&this._$Em!==i){let n=r.getPropertyOptions(i),a=typeof n.converter=="function"?{fromAttribute:n.converter}:((o=n.converter)==null?void 0:o.fromAttribute)!==void 0?n.converter:Be;this._$Em=i,this[i]=a.fromAttribute(e,n.type),this._$Em=null}}requestUpdate(t,e,r){var i;if(t!==void 0){if(r!=null||(r=this.constructor.getPropertyOptions(t)),!((i=r.hasChanged)!=null?i:wt)(this[t],e))return;this.P(t,e,r)}this.isUpdatePending===!1&&(this._$ES=this._$ET())}P(t,e,r){var i;this._$AL.has(t)||this._$AL.set(t,e),r.reflect===!0&&this._$Em!==t&&((i=this._$Ej)!=null?i:this._$Ej=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let t=this.scheduleUpdate();return t!=null&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var r,i;if(!this.isUpdatePending)return;if(!this.hasUpdated){if((r=this.renderRoot)!=null||(this.renderRoot=this.createRenderRoot()),this._$Ep){for(let[n,a]of this._$Ep)this[n]=a;this._$Ep=void 0}let o=this.constructor.elementProperties;if(o.size>0)for(let[n,a]of o)a.wrapped!==!0||this._$AL.has(n)||this[n]===void 0||this.P(n,this[n],a)}let t=!1,e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),(i=this._$EO)==null||i.forEach(o=>{var n;return(n=o.hostUpdate)==null?void 0:n.call(o)}),this.update(e)):this._$EU()}catch(o){throw t=!1,this._$EU(),o}t&&this._$AE(e)}willUpdate(t){}_$AE(t){var e;(e=this._$EO)==null||e.forEach(r=>{var i;return(i=r.hostUpdated)==null?void 0:i.call(r)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&(this._$Ej=this._$Ej.forEach(e=>this._$EC(e,this[e]))),this._$EU()}updated(t){}firstUpdated(t){}},oi;G.elementStyles=[],G.shadowRootOptions={mode:"open"},G[Fe("elementProperties")]=new Map,G[Fe("finalized")]=new Map,ir==null||ir({ReactiveElement:G}),((oi=N.reactiveElementVersions)!=null?oi:N.reactiveElementVersions=[]).push("2.0.4");var ke=globalThis,Et=ke.trustedTypes,ni=Et?Et.createPolicy("lit-html",{createHTML:s=>s}):void 0,nr="$lit$",Q=`lit$${Math.random().toFixed(9).slice(2)}$`,ar="?"+Q,ds=`<${ar}>`,be=ke.document===void 0?{createTreeWalker:()=>({})}:document,Xe=()=>be.createComment(""),Ye=s=>s===null||typeof s!="object"&&typeof s!="function",lr=Array.isArray,mi=s=>lr(s)||typeof(s==null?void 0:s[Symbol.iterator])=="function",sr=`[
2
- \f\r]`,je=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ai=/-->/g,li=/>/g,ge=RegExp(`>|${sr}(?:([^\\s"'>=/]+)(${sr}*=${sr}*(?:[^
3
- \f\r"'\`<>=]|("|')|))|$)`,"g"),ci=/'/g,di=/"/g,ui=/^(?:script|style|textarea|title)$/i,cr=s=>(t,...e)=>({_$litType$:s,strings:t,values:e}),h=cr(1),dr=cr(2),To=cr(3),M=Symbol.for("lit-noChange"),E=Symbol.for("lit-nothing"),pi=new WeakMap,fe=be.createTreeWalker(be,129);function gi(s,t){if(!lr(s)||!s.hasOwnProperty("raw"))throw Error("invalid template strings array");return ni!==void 0?ni.createHTML(t):t}var fi=(s,t)=>{let e=s.length-1,r=[],i,o=t===2?"<svg>":t===3?"<math>":"",n=je;for(let a=0;a<e;a++){let c=s[a],p,f,g=-1,y=0;for(;y<c.length&&(n.lastIndex=y,f=n.exec(c),f!==null);)y=n.lastIndex,n===je?f[1]==="!--"?n=ai:f[1]!==void 0?n=li:f[2]!==void 0?(ui.test(f[2])&&(i=RegExp("</"+f[2],"g")),n=ge):f[3]!==void 0&&(n=ge):n===ge?f[0]===">"?(n=i!=null?i:je,g=-1):f[1]===void 0?g=-2:(g=n.lastIndex-f[2].length,p=f[1],n=f[3]===void 0?ge:f[3]==='"'?di:ci):n===di||n===ci?n=ge:n===ai||n===li?n=je:(n=ge,i=void 0);let v=n===ge&&s[a+1].startsWith("/>")?" ":"";o+=n===je?c+ds:g>=0?(r.push(p),c.slice(0,g)+nr+c.slice(g)+Q+v):c+Q+(g===-2?a:v)}return[gi(s,o+(s[e]||"<?>")+(t===2?"</svg>":t===3?"</math>":"")),r]},We=class s{constructor({strings:t,_$litType$:e},r){let i;this.parts=[];let o=0,n=0,a=t.length-1,c=this.parts,[p,f]=fi(t,e);if(this.el=s.createElement(p,r),fe.currentNode=this.el.content,e===2||e===3){let g=this.el.content.firstChild;g.replaceWith(...g.childNodes)}for(;(i=fe.nextNode())!==null&&c.length<a;){if(i.nodeType===1){if(i.hasAttributes())for(let g of i.getAttributeNames())if(g.endsWith(nr)){let y=f[n++],v=i.getAttribute(g).split(Q),w=/([.?@])?(.*)/.exec(y);c.push({type:1,index:o,name:w[2],strings:v,ctor:w[1]==="."?kt:w[1]==="?"?Tt:w[1]==="@"?At:ye}),i.removeAttribute(g)}else g.startsWith(Q)&&(c.push({type:6,index:o}),i.removeAttribute(g));if(ui.test(i.tagName)){let g=i.textContent.split(Q),y=g.length-1;if(y>0){i.textContent=Et?Et.emptyScript:"";for(let v=0;v<y;v++)i.append(g[v],Xe()),fe.nextNode(),c.push({type:2,index:++o});i.append(g[y],Xe())}}}else if(i.nodeType===8)if(i.data===ar)c.push({type:2,index:o});else{let g=-1;for(;(g=i.data.indexOf(Q,g+1))!==-1;)c.push({type:7,index:o}),g+=Q.length-1}o++}}static createElement(t,e){let r=be.createElement("template");return r.innerHTML=t,r}};function ve(s,t,e=s,r){var n,a,c;if(t===M)return t;let i=r!==void 0?(n=e.o)==null?void 0:n[r]:e.l,o=Ye(t)?void 0:t._$litDirective$;return(i==null?void 0:i.constructor)!==o&&((a=i==null?void 0:i._$AO)==null||a.call(i,!1),o===void 0?i=void 0:(i=new o(s),i._$AT(s,e,r)),r!==void 0?((c=e.o)!=null?c:e.o=[])[r]=i:e.l=i),i!==void 0&&(t=ve(s,i._$AS(s,t.values),i,r)),t}var Ct=class{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var p;let{el:{content:e},parts:r}=this._$AD,i=((p=t==null?void 0:t.creationScope)!=null?p:be).importNode(e,!0);fe.currentNode=i;let o=fe.nextNode(),n=0,a=0,c=r[0];for(;c!==void 0;){if(n===c.index){let f;c.type===2?f=new Te(o,o.nextSibling,this,t):c.type===1?f=new c.ctor(o,c.name,c.strings,this,t):c.type===6&&(f=new _t(o,this,t)),this._$AV.push(f),c=r[++a]}n!==(c==null?void 0:c.index)&&(o=fe.nextNode(),n++)}return fe.currentNode=be,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++}},Te=class s{get _$AU(){var t,e;return(e=(t=this._$AM)==null?void 0:t._$AU)!=null?e:this.v}constructor(t,e,r,i){var o;this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=r,this.options=i,this.v=(o=i==null?void 0:i.isConnected)!=null?o:!0}get parentNode(){let t=this._$AA.parentNode,e=this._$AM;return e!==void 0&&(t==null?void 0:t.nodeType)===11&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=ve(this,t,e),Ye(t)?t===E||t==null||t===""?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==M&&this._(t):t._$litType$!==void 0?this.$(t):t.nodeType!==void 0?this.T(t):mi(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!==E&&Ye(this._$AH)?this._$AA.nextSibling.data=t:this.T(be.createTextNode(t)),this._$AH=t}$(t){var o;let{values:e,_$litType$:r}=t,i=typeof r=="number"?this._$AC(t):(r.el===void 0&&(r.el=We.createElement(gi(r.h,r.h[0]),this.options)),r);if(((o=this._$AH)==null?void 0:o._$AD)===i)this._$AH.p(e);else{let n=new Ct(i,this),a=n.u(this.options);n.p(e),this.T(a),this._$AH=n}}_$AC(t){let e=pi.get(t.strings);return e===void 0&&pi.set(t.strings,e=new We(t)),e}k(t){lr(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 s(this.O(Xe()),this.O(Xe()),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){var r;for((r=this._$AP)==null?void 0:r.call(this,!1,!0,e);t&&t!==this._$AB;){let i=t.nextSibling;t.remove(),t=i}}setConnected(t){var e;this._$AM===void 0&&(this.v=t,(e=this._$AP)==null||e.call(this,t))}},ye=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,r,i,o){this.type=1,this._$AH=E,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=E}_$AI(t,e=this,r,i){let o=this.strings,n=!1;if(o===void 0)t=ve(this,t,e,0),n=!Ye(t)||t!==this._$AH&&t!==M,n&&(this._$AH=t);else{let a=t,c,p;for(t=o[0],c=0;c<o.length-1;c++)p=ve(this,a[r+c],e,c),p===M&&(p=this._$AH[c]),n||(n=!Ye(p)||p!==this._$AH[c]),p===E?t=E:t!==E&&(t+=(p!=null?p:"")+o[c+1]),this._$AH[c]=p}n&&!i&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t!=null?t:"")}},kt=class extends ye{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}},Tt=class extends ye{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}},At=class extends ye{constructor(t,e,r,i,o){super(t,e,r,i,o),this.type=5}_$AI(t,e=this){var n;if((t=(n=ve(this,t,e,0))!=null?n:E)===M)return;let r=this._$AH,i=t===E&&r!==E||t.capture!==r.capture||t.once!==r.once||t.passive!==r.passive,o=t!==E&&(r===E||i);i&&this.element.removeEventListener(this.name,this,r),o&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,r;typeof this._$AH=="function"?this._$AH.call((r=(e=this.options)==null?void 0:e.host)!=null?r:this.element,t):this._$AH.handleEvent(t)}},_t=class{constructor(t,e,r){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=r}get _$AU(){return this._$AM._$AU}_$AI(t){ve(this,t)}},bi={M:nr,P:Q,A:ar,C:1,L:fi,R:Ct,D:mi,V:ve,I:Te,H:ye,N:Tt,U:At,B:kt,F:_t},or=ke.litHtmlPolyfillSupport,hi;or==null||or(We,Te),((hi=ke.litHtmlVersions)!=null?hi:ke.litHtmlVersions=[]).push("3.2.0");var vi=(s,t,e)=>{var o,n;let r=(o=e==null?void 0:e.renderBefore)!=null?o:t,i=r._$litPart$;if(i===void 0){let a=(n=e==null?void 0:e.renderBefore)!=null?n:null;r._$litPart$=i=new Te(t.insertBefore(Xe(),a),a,void 0,e!=null?e:{})}return i._$AI(s),i};var u=class extends G{constructor(){super(...arguments),this.renderOptions={host:this},this.o=void 0}createRenderRoot(){var e,r;let t=super.createRenderRoot();return(r=(e=this.renderOptions).renderBefore)!=null||(e.renderBefore=t.firstChild),t}update(t){let e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this.o=vi(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),(t=this.o)==null||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.o)==null||t.setConnected(!1)}render(){return M}},yi;u._$litElement$=!0,u.finalized=!0,(yi=globalThis.litElementHydrateSupport)==null||yi.call(globalThis,{LitElement:u});var pr=globalThis.litElementPolyfillSupport;pr==null||pr({LitElement:u});var xi;((xi=globalThis.litElementVersions)!=null?xi:globalThis.litElementVersions=[]).push("4.1.0");var m=s=>(t,e)=>{e!==void 0?e.addInitializer(()=>{customElements.define(s,t)}):customElements.define(s,t)};var ps={attribute:!0,type:String,converter:Be,reflect:!1,hasChanged:wt},hs=(s=ps,t,e)=>{let{kind:r,metadata:i}=e,o=globalThis.litPropertyMetadata.get(i);if(o===void 0&&globalThis.litPropertyMetadata.set(i,o=new Map),o.set(e.name,s),r==="accessor"){let{name:n}=e;return{set(a){let c=t.get.call(this);t.set.call(this,a),this.requestUpdate(n,c,s)},init(a){return a!==void 0&&this.P(n,void 0,s),a}}}if(r==="setter"){let{name:n}=e;return function(a){let c=this[n];t.call(this,a),this.requestUpdate(n,c,s)}}throw Error("Unsupported decorator location: "+r)};function d(s){return(t,e)=>typeof e=="object"?hs(s,t,e):((r,i,o)=>{let n=i.hasOwnProperty(o);return i.constructor.createProperty(o,n?_(C({},r),{wrapped:!0}):r),n?Object.getOwnPropertyDescriptor(i,o):void 0})(s,t,e)}function q(s){return d(_(C({},s),{state:!0,attribute:!1}))}var se=(s,t,e)=>(e.configurable=!0,e.enumerable=!0,Reflect.decorate&&typeof t!="object"&&Object.defineProperty(s,t,e),e);function Ke(s,t){return(e,r,i)=>{let o=n=>{var a,c;return(c=(a=n.renderRoot)==null?void 0:a.querySelector(s))!=null?c:null};if(t){let{get:n,set:a}=typeof r=="object"?e:i!=null?i:(()=>{let c=Symbol();return{get(){return this[c]},set(p){this[c]=p}}})();return se(e,r,{get(){let c=n.call(this);return c===void 0&&(c=o(this),(c!==null||this.hasUpdated)&&a.call(this,c)),c}})}return se(e,r,{get(){return o(this)}})}}function qi(s){return(t,e)=>{let{slot:r,selector:i}=s!=null?s:{},o="slot"+(r?`[name=${r}]`:":not([name])");return se(t,e,{get(){var c,p;let n=(c=this.renderRoot)==null?void 0:c.querySelector(o),a=(p=n==null?void 0:n.assignedElements(s))!=null?p:[];return i===void 0?a:a.filter(f=>f.matches(i))}})}}function S(s,t){let e=C({waitUntilFirstUpdate:!1},t);return(r,i)=>{let{update:o}=r,n=Array.isArray(s)?s:[s];r.update=function(a){n.forEach(c=>{let p=c;if(a.has(p)){let f=a.get(p),g=this[p];f!==g&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[i](f,g)}}),o.call(this,a)}}}var wi=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}],I="item";var L=class extends u{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent=null;this._handleDisabledChange=(e,r)=>{this._interactionElements.forEach(i=>i.disabled=r)};this._handleReadonlyChange=(e,r)=>this._interactionElements.forEach(i=>i.readonly=r);this._context={identifier:this.getAttribute("identifier"),variables:wi};this._initialContext=_(C({},this._context),{variables:this._context.variables});this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context=_(C({},this._context),{variables:[...this._context.variables,e.detail.variable]}),this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let r=e.detail;this._feedbackElements.push(r),r.checkShowFeedback(r.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.target)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:r,countAttempt:i}=e.detail;this.updateResponseVariable(r,"true"),this.processResponse(i)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:r,value:i}=e.detail;this.updateOutcomeVariable(r,i),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>C({identifier:e.identifier,value:e.value,type:e.type},e.type==="outcome"&&e.identifier==="SCORE"?{externalScored:e.externalScored}:{}))}set variables(e){if(!Array.isArray(e)||e.some(r=>!("identifier"in r))){console.warn("variables property should be an array of VariableDeclaration");return}this._context=_(C({},this._context),{variables:this._context.variables.map(r=>{let i=e.find(o=>o.identifier===r.identifier);return i?C(C({},r),i):r})}),this._context.variables.forEach(r=>{if(r.type==="response"){let i=this._interactionElements.find(o=>o.responseIdentifier===r.identifier);i&&(i.response=r.value)}r.type==="outcome"&&this._feedbackElements.forEach(i=>i.checkShowFeedback(r.identifier))})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let r of e){this.getResponse(r.responseIdentifier)&&this.updateResponseVariable(r.responseIdentifier,r.response);let o=this._interactionElements.find(n=>n.getAttribute("response-identifier")===r.responseIdentifier);o&&(o.response=r.response)}}render(){return h`<slot></slot>`}showCorrectResponse(e){let i=this._context.variables.filter(o=>"correctResponse"in o&&o.correctResponse).map(o=>({responseIdentifier:o.identifier,response:o.correctResponse}));for(let o of i){let n=this._interactionElements.find(a=>a.getAttribute("response-identifier")===o.responseIdentifier);n&&(n.correctResponse=e?o.response:"")}}processResponse(e=!0){var i;let r=this.querySelector("qti-response-processing");return!r||!r.process?!1:(r.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+((i=this._context.variables.find(o=>o.identifier==="numAttempts"))==null?void 0:i.value)+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(r=>r.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:r,response:i}=e.detail;this.updateResponseVariable(r,i)}updateResponseVariable(e,r){this._context=_(C({},this._context),{variables:this._context.variables.map(i=>i.identifier!==e?i:_(C({},i),{value:r}))}),this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(r)?[...r]:r}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,r){var o;let i=this.getOutcome(e);if(!i){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context=_(C({},this._context),{variables:this._context.variables.map(n=>n.identifier!==e?n:_(C({},n),{value:i.cardinality==="single"?r:[...n.value,r]}))}),this._feedbackElements.forEach(n=>n.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:(o=this._context.variables.find(n=>n.identifier===e))==null?void 0:o.value})}_getCompletionStatus(){return this._interactionElements.every(e=>e.validate())?"completed":this._interactionElements.some(e=>e.validate())?"incomplete":"not_attempted"}_emit(e,r=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:r}))}};l([d({type:String})],L.prototype,"title",2),l([d({type:String})],L.prototype,"identifier",2),l([d({type:String})],L.prototype,"adaptive",2),l([d({type:String})],L.prototype,"timeDependent",2),l([d({type:Boolean})],L.prototype,"disabled",2),l([S("disabled",{waitUntilFirstUpdate:!0})],L.prototype,"_handleDisabledChange",2),l([d({type:Boolean})],L.prototype,"readonly",2),l([S("readonly",{waitUntilFirstUpdate:!0})],L.prototype,"_handleReadonlyChange",2),l([er({context:I})],L.prototype,"_context",2),L=l([m("qti-assessment-item")],L);var ms=String.raw,Ze=()=>{let s,t={async load(e,r=!1){return new Promise((i,o)=>{ur(e,r).then(n=>(s=n,i(t)))})},parse(e){return s=gr(e),t},path:e=>(fs(s,e),t),fn(e){return e(s),t},pciHooks(e){let r=["hook","module"],i=e.substring(0,e.lastIndexOf("/"));for(let o of r)s.querySelectorAll("["+o+"]").forEach(a=>{let c=a.getAttribute(o);!c.startsWith("data:")&&!c.startsWith("http")&&(a.setAttribute("base-url",e),a.setAttribute("module",i+"/"+encodeURIComponent(c+(c.endsWith(".js")?"":".js"))))});return t},customInteraction(e,r){let i=s.querySelector("qti-custom-interaction"),o=i.querySelector("object");return i.setAttribute("data-base-ref",e),i.setAttribute("data-base-item",e+r),i.setAttribute("data",o.getAttribute("data")),i.setAttribute("width",o.getAttribute("width")),i.setAttribute("height",o.getAttribute("height")),i.removeChild(o),t},convertCDATAtoComment(){return bs(s),t},stripStyleSheets(){return vs(s),t},html(){return new XMLSerializer().serializeToString(St(s))},xml(){return new XMLSerializer().serializeToString(s)},htmldoc(){return St(s)},xmldoc(){return s}};return t},mr=()=>{let s,t={async load(e){return new Promise((r,i)=>{ur(e).then(o=>(s=o,r(t)))})},parse(e){s=gr(e)},assessmentTest(){let e=s.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:e.getAttribute("href"),identifier:e.getAttribute("identifier")}}};return t},Rt=()=>{let s,t={async load(e){return new Promise((r,i)=>{ur(e).then(o=>(s=o,r(t)))})},parse(e){return s=gr(e),t},fn(e){return e(s),t},items(){return gs(s)},html(){return new XMLSerializer().serializeToString(St(s))},xml(){return new XMLSerializer().serializeToString(s)},htmldoc(){return St(s)},xmldoc(){return s}};return t},us=ms`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4
- <xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
5
- <xsl:template match="@*|node()">
6
- <xsl:copy>
7
- <xsl:apply-templates select="@*|node()"/>
8
- </xsl:copy>
9
- </xsl:template>
10
-
11
- <!-- remove existing namespaces -->
12
- <xsl:template match="*">
13
- <!-- remove element prefix -->
14
- <xsl:element name="{local-name()}">
15
- <!-- process attributes -->
16
- <xsl:for-each select="@*">
17
- <!-- remove attribute prefix -->
18
- <xsl:attribute name="{local-name()}">
19
- <xsl:value-of select="."/>
20
- </xsl:attribute>
21
- </xsl:for-each>
22
- <xsl:apply-templates/>
23
- </xsl:element>
24
- </xsl:template>
25
- </xsl:stylesheet>`;function gs(s){let t=[];return s.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 hr=null;function ur(s,t=!0){return t&&hr!==null&&hr.abort(),new Promise((e,r)=>{let i=new XMLHttpRequest;hr=i,i.open("GET",s,!0),i.responseType="document",i.onload=()=>{i.status>=200&&i.status<300?e(i.responseXML):r(i.statusText)},i.onerror=()=>{r(i.statusText)},i.send()})}function gr(s){return new DOMParser().parseFromString(s,"text/xml")}function St(s){let t=new XSLTProcessor,e=new DOMParser().parseFromString(us,"text/xml");return t.importStylesheet(e),t.transformToFragment(s,document)}function fs(s,t){t.endsWith("/")||(t+="/"),s.querySelectorAll("[src],[href],[primary-path]").forEach(e=>{var o;let r="";e.getAttribute("src")&&(r="src"),e.getAttribute("href")&&(r="href"),e.getAttribute("primary-path")&&(r="primary-path");let i=(o=e.getAttribute(r))==null?void 0:o.trim();if(!i.startsWith("data:")&&!i.startsWith("http")){let n=t+encodeURIComponent(i);e.setAttribute(r,n)}})}function bs(s){s.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(e=>{let r=document.createComment(e.textContent);e.replaceChild(r,e.firstChild)})}function vs(s){s.querySelectorAll("qti-stylesheet").forEach(t=>t.remove())}var Ae=class extends u{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0});if(this.dispatchEvent(e)){let o=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);o?await this.loadAndAppendStimulus(o):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async loadAndAppendStimulus(e){var o;let r=this.href.substring(0,this.href.lastIndexOf("/")),i=await Ze().load(this.href).then(n=>n.path(r).htmldoc());if(i){let n=i.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.append(...n),((o=i.querySelector("qti-assessment-stimulus"))==null?void 0:o.title).includes("(lijst)")&&e.classList.add("qti-stimulus-list")}}};l([d({type:String})],Ae.prototype,"identifier",2),l([d({type:String})],Ae.prototype,"href",2),Ae=l([m("qti-assessment-stimulus-ref")],Ae);var Ei={toAttribute:s=>s?"true":"false",fromAttribute:s=>s==="true"};function O(s,t){class e extends s{constructor(...o){super(...o);this.identifier="";this.tabIndex=0;this.disabled=!1;this.readonly=!1;this._internals=this.attachInternals()}handleDisabledChange(o,n){this.tabIndex=n?-1:0,n&&this.blur()}setInternalState(o,n){n&&!this._internals.states.has(o)?this._internals.states.add(o):!n&&this._internals.states.has(o)&&this._internals.states.delete(o)}connectedCallback(){super.connectedCallback(),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(o){o.altKey||o.code==="Space"&&(o.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 h`<slot></slot>`}}return l([d({type:String})],e.prototype,"identifier",2),l([d({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",2),l([d({type:Boolean,reflect:!0,attribute:"aria-disabled",converter:Ei})],e.prototype,"disabled",2),l([d({type:Boolean,reflect:!0,attribute:"aria-readonly",converter:Ei})],e.prototype,"readonly",2),l([S("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",1),e}var Ci=b`
26
- :host {
27
- display: block;
28
- }
29
- `;var _e=class extends u{render(){return h`<slot name="qti-rubric-block"></slot><slot></slot>`}};_e.styles=Ci,_e=l([m("qti-item-body")],_e);var Mt=class extends u{render(){return h`<slot></slot>`}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};Mt=l([m("qti-prompt")],Mt);var Lt=class extends u{firstUpdated(t){super.firstUpdated(t);let e=this,r=this.getAttribute("href");if(r!==null){let i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.media="screen",i.href=r,e.appendChild(i),this.styleLink=i}if(this.textContent!==null){let i=document.createElement("style");i.media="screen",i.textContent=this.textContent,e.appendChild(i),this.styleLink=i}}disconnectedCallback(){if(this.styleLink)try{this.styleLink.remove()}catch(t){console.log("could not remove stylesheet")}}};Lt=l([m("qti-stylesheet")],Lt);var oe=class extends u{render(){return h`<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.cardinality==="multiple"||t.cardinality==="ordered"?r:r[0]}};oe=l([m("qti-variabledeclaration")],oe);var U=class extends oe{constructor(){super(...arguments);this.externalScored=null}render(){var r,i;let e=(i=(r=this.itemContext)==null?void 0:r.variables.find(o=>o.identifier===this.identifier))==null?void 0:i.value;return h`${JSON.stringify(e,null,2)}`}get interpolationTable(){let e=this.querySelector("qti-interpolation-table");if(e){let r=new Map;for(let i of e.querySelectorAll("qti-interpolation-table-entry")){!i.getAttribute("source-value")&&i.getAttribute("target-value")&&console.error("source-value or target-value is missing in qti-interpolation-table-entry");let o=parseInt(i.getAttribute("source-value")),n=parseInt(i.getAttribute("target-value"));(isNaN(o)||isNaN(n))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),r.set(o,n)}return r}return null}connectedCallback(){super.connectedCallback();let e={identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,type:"outcome",value:null,interpolationTable:this.interpolationTable,externalScored:this.externalScored};e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};U.styles=[b`
30
- :host {
31
- display: none;
32
- }
33
- `],l([d({type:String,attribute:"base-type"})],U.prototype,"baseType",2),l([d({type:String,attribute:"external-scored"})],U.prototype,"externalScored",2),l([d({type:String})],U.prototype,"identifier",2),l([d({type:String})],U.prototype,"cardinality",2),l([J({context:I,subscribe:!0}),q()],U.prototype,"itemContext",2),U=l([m("qti-outcome-declaration")],U);var ee=class extends oe{render(){var e,r;let t=(r=(e=this.itemContext)==null?void 0:e.variables.find(i=>i.identifier===this.identifier))==null?void 0:r.value;return h`${JSON.stringify(t,null,2)}`}connectedCallback(){super.connectedCallback();let t={baseType:this.baseType,identifier:this.identifier,correctResponse:this.correctResponse,cardinality:this.cardinality||"single",mapping:this.mapping,value:null,type:"response",candidateResponse:null};t.value=this.defaultValues(t),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:t}}))}get correctResponse(){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,r[0].remove();else if(this.cardinality!=="single"){t=[];for(let i=0;i<r.length;i++)t.push(r[i].textContent),r[i].remove()}}return t}get mapping(){return this.querySelector("qti-mapping")}};ee.styles=[b`
34
- :host {
35
- display: none;
36
- }
37
- `],l([d({type:String,attribute:"base-type"})],ee.prototype,"baseType",2),l([d({type:String})],ee.prototype,"identifier",2),l([d({type:String})],ee.prototype,"cardinality",2),l([J({context:I,subscribe:!0}),q()],ee.prototype,"itemContext",2),ee=l([m("qti-response-declaration")],ee);var $t=class extends u{};$t=l([m("qti-companion-materials-info")],$t);var Dt=class extends u{render(){return h`<slot></slot>`}};Dt=l([m("qti-content-body")],Dt);var z=class extends u{handleclassNamesChange(t,e){this.classNames.split(" ").forEach(i=>{switch(i){case"qti-rubric-discretionary-placement":this.setAttribute("slot","qti-rubric-block");break;case"qti-rubric-inline":this.setAttribute("slot","");break;default:break}})}render(){return h`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};z.styles=b`
38
- :host {
39
- display: block;
40
- }
41
- `,l([d({type:String})],z.prototype,"id",2),l([d({type:String})],z.prototype,"use",2),l([d({type:String})],z.prototype,"view",2),l([d({type:String,attribute:"class"})],z.prototype,"classNames",2),l([S("classNames",{waitUntilFirstUpdate:!0})],z.prototype,"handleclassNamesChange",1),z=l([m("qti-rubric-block")],z);var ys=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),Je=s=>{if(typeof s=="string")return s;let t=ys();return t==="."?s.toLocaleString():s.toString().replace(".","").replace(t,".")};function fr(s){return s==null}function Ge(s){return s.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}var $=class extends u{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(t){let e=this.closest("qti-assessment-item").getOutcome(t);if(this.outcomeIdentifier!==t||!e)return;let r=!1;Array.isArray(e.value)?r=e.value.includes(this.identifier):r=!fr(this.identifier)&&!fr(e==null?void 0:e.value)&&this.identifier===e.value||!1,this.showFeedback(r)}showFeedback(t){this.showStatus=t&&this.showHide==="show"||!t&&this.showHide==="hide"?"on":"off"}};l([d({type:String,attribute:"show-hide"})],$.prototype,"showHide",2),l([d({type:String,attribute:"outcome-identifier"})],$.prototype,"outcomeIdentifier",2),l([d({type:String})],$.prototype,"identifier",2),l([d({type:String,attribute:!1})],$.prototype,"showStatus",2);var Qe=class extends ${render(){return h` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}firstUpdated(t){this.checkShowFeedback(this.outcomeIdentifier)}};Qe.styles=b`
42
- :host {
43
- display: block;
44
- }
45
- .on {
46
- display: block;
47
- }
48
- .off {
49
- display: none;
50
- }
51
- `,Qe=l([m("qti-feedback-block")],Qe);var et=class extends ${constructor(){super(...arguments);this.render=()=>h` <slot part="feedback" class="${this.showStatus}"></slot> `}};et.styles=b`
52
- .on {
53
- display: inline-block;
54
- }
55
- .off {
56
- display: none;
57
- }
58
- `,et=l([m("qti-feedback-inline")],et);var tt=class extends ${constructor(){super(...arguments);this.render=()=>h` <slot part="feedback" class="${this.showStatus}"></slot> `}};tt.styles=b`
59
- .on {
60
- display: inline-block;
61
- }
62
- .off {
63
- display: none;
64
- }
65
- `,tt=l([m("qti-modal-feedback")],tt);var F=s=>s!=null?s:E;var T=class extends u{constructor(){super(...arguments);this.responseIdentifier="";this.disabled=!1;this.readonly=!1}set correctResponse(e){console.warn("correctResponse is not implemented")}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,cancelable:!1,composed:!0}))}saveResponse(e){this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,cancelable:!1,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:Array.isArray(e)?[...e]:e}}))}};l([d({attribute:"response-identifier"})],T.prototype,"responseIdentifier",2),l([d({reflect:!0,type:Boolean})],T.prototype,"disabled",2),l([d({reflect:!0,type:Boolean})],T.prototype,"readonly",2);var{I:xs}=bi;var Ti=s=>s.strings===void 0,ki=()=>document.createComment(""),Se=(s,t,e)=>{var o;let r=s._$AA.parentNode,i=t===void 0?s._$AB:t._$AA;if(e===void 0){let n=r.insertBefore(ki(),i),a=r.insertBefore(ki(),i);e=new xs(n,a,s,s.options)}else{let n=e._$AB.nextSibling,a=e._$AM,c=a!==s;if(c){let p;(o=e._$AQ)==null||o.call(e,s),e._$AM=s,e._$AP!==void 0&&(p=s._$AU)!==a._$AU&&e._$AP(p)}if(n!==i||c){let p=e._$AA;for(;p!==n;){let f=p.nextSibling;r.insertBefore(p,i),p=f}}}return e},ne=(s,t,e=s)=>(s._$AI(t,e),s),qs={},Ai=(s,t=qs)=>s._$AH=t,_i=s=>s._$AH,Ht=s=>{var r;(r=s._$AP)==null||r.call(s,!1,!0);let t=s._$AA,e=s._$AB.nextSibling;for(;t!==e;){let i=t.nextSibling;t.remove(),t=i}};var ae={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},te=s=>(...t)=>({_$litDirective$:s,values:t}),B=class{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,r){this.t=t,this._$AM=e,this.i=r}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}};var rt=(s,t)=>{var r;let e=s._$AN;if(e===void 0)return!1;for(let i of e)(r=i._$AO)==null||r.call(i,t,!1),rt(i,t);return!0},Pt=s=>{let t,e;do{if((t=s._$AM)===void 0)break;e=t._$AN,e.delete(s),s=t}while((e==null?void 0:e.size)===0)},Si=s=>{for(let t;t=s._$AM;s=t){let e=t._$AN;if(e===void 0)t._$AN=e=new Set;else if(e.has(s))break;e.add(s),Cs(t)}};function ws(s){this._$AN!==void 0?(Pt(this),this._$AM=s,Si(this)):this._$AM=s}function Es(s,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++)rt(r[o],!1),Pt(r[o]);else r!=null&&(rt(r,!1),Pt(r));else rt(this,s)}var Cs=s=>{var t,e;s.type==ae.CHILD&&((t=s._$AP)!=null||(s._$AP=Es),(e=s._$AQ)!=null||(s._$AQ=ws))},Nt=class extends B{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,r){super._$AT(t,e,r),Si(this),this.isConnected=t._$AU}_$AO(t,e=!0){var r,i;t!==this.isConnected&&(this.isConnected=t,t?(r=this.reconnected)==null||r.call(this):(i=this.disconnected)==null||i.call(this)),e&&(rt(this,t),Pt(this))}setValue(t){if(Ti(this.t))this.t._$AI(t,this);else{let e=[...this.t._$AH];e[this.i]=t,this.t._$AI(e,this,0)}}disconnected(){}reconnected(){}};var Vt=()=>new vr,vr=class{},br=new WeakMap,Ri=te(class extends Nt{render(s){return E}update(s,[t]){var r;let e=t!==this.Y;return e&&this.Y!==void 0&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.Y=t,this.ht=(r=s.options)==null?void 0:r.host,this.rt(this.ct=s.element)),E}rt(s){var t;if(this.isConnected||(s=void 0),typeof this.Y=="function"){let e=(t=this.ht)!=null?t:globalThis,r=br.get(e);r===void 0&&(r=new WeakMap,br.set(e,r)),r.get(this.Y)!==void 0&&this.Y.call(this.ht,void 0),r.set(this.Y,s),s!==void 0&&this.Y.call(this.ht,s)}else this.Y.value=s}get lt(){var s,t,e;return typeof this.Y=="function"?(t=br.get((s=this.ht)!=null?s:globalThis))==null?void 0:t.get(this.Y):(e=this.Y)==null?void 0:e.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});var j=class extends T{constructor(){super(...arguments);this.textareaRef=Vt();this._value=""}handleclassNamesChange(e,r){this.classNames.split(" ").forEach(o=>{if(o.startsWith("qti-height-lines")){let n=o.replace("qti-height-lines-","");this.textareaRef&&(this.textareaRef.value.rows=parseInt(n))}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[b`
66
- /* PK: display host as block, else design will be collapsed */
67
- :host {
68
- display: block;
69
- }
70
- textarea {
71
- box-sizing: border-box;
72
- width: 100%;
73
- height: 100%;
74
- border: 0;
75
- }
76
- `]}render(){return h`<slot name="prompt"></slot
77
- ><textarea
78
- part="textarea"
79
- ${Ri(this.textareaRef)}
80
- spellcheck="false"
81
- autocomplete="off"
82
- @keydown="${e=>e.stopImmediatePropagation()}"
83
- @keyup="${this.textChanged}"
84
- @change="${this.textChanged}"
85
- @blur="${e=>{let r=e.target;r.checkValidity()?r.setCustomValidity(""):(r.setCustomValidity(this.dataset.patternmaskMessage||"Invalid input"),r.reportValidity())}}"
86
- placeholder="${F(this.placeholderText?this.placeholderText:void 0)}"
87
- maxlength="${F(this.expectedLength?this.expectedLength:void 0)}"
88
- pattern="${F(this.patternMask?this.patternMask:void 0)}"
89
- ?disabled="${this.disabled}"
90
- ?readonly="${this.readonly}"
91
- .value=${this._value}
92
- ></textarea>`}textChanged(e){if(this.disabled||this.readonly)return;let r=e.target;this.setEmptyAttribute(r.value),this._value!==r.value&&(this._value=r.value,this.saveResponse(r.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};l([d({type:Number,attribute:"expected-length"})],j.prototype,"expectedLength",2),l([d({type:String,attribute:"pattern-mask"})],j.prototype,"patternMask",2),l([d({type:String,attribute:"placeholder-text"})],j.prototype,"placeholderText",2),l([q()],j.prototype,"_value",2),l([d({type:String,attribute:"class"})],j.prototype,"classNames",2),l([S("classNames",{waitUntilFirstUpdate:!0})],j.prototype,"handleclassNamesChange",1),j=l([m("qti-extended-text-interaction")],j);function Mi(s,t){let e,r=C({},t);return(i,o)=>{let{connectedCallback:n,disconnectedCallback:a}=i;i.connectedCallback=function(){var f;n.call(this);let c=g=>{let y=Array.from(this.querySelectorAll(s));for(let v of g){let w=Array.from(v.addedNodes).map(A=>A),k=Array.from(v.addedNodes).map(A=>A);v.type==="childList"&&w.find(A=>y.includes(A))&&this[o](w,k)}};e=new MutationObserver(c),e.observe(this,{childList:!0,subtree:!0});let p=(f=this.querySelectorAll(s))!=null?f:[];this[o](Array.from(p),[])},i.disconnectedCallback=function(){a.call(this),e.disconnect()}}}var D=class extends T{constructor(){super(...arguments);this._value="";this._correctValue="";this._size=5;this.inputRef=Vt()}handleclassNamesChange(e,r){r.split(" ").forEach(o=>{if(o.startsWith("qti-input-width")){let n=o.replace("qti-input-width-","");this._size=parseInt(n)}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[b`
93
- [part='correct'] {
94
- position: absolute;
95
- width: 100%;
96
- }
97
- `]}set correctResponse(e){this._correctValue=e}render(){return h`
98
- <input
99
- part="input"
100
- spellcheck="false"
101
- autocomplete="off"
102
- @blur="${e=>{let r=e.target;r.checkValidity()?r.setCustomValidity(""):(r.setCustomValidity(this.dataset.patternmaskMessage||"Invalid input"),r.reportValidity())}}"
103
- @keydown="${e=>e.stopImmediatePropagation()}"
104
- @keyup="${this.textChanged}"
105
- @change="${this.textChanged}"
106
- type="${this.patternMask=="[0-9]*"?"number":"text"}"
107
- placeholder="${F(this.placeholderText?this.placeholderText:void 0)}"
108
- .value="${this._value}"
109
- size="${this._size}"
110
- pattern="${F(this.patternMask?this.patternMask:void 0)}"
111
- ?disabled="${this.disabled}"
112
- ?readonly="${this.readonly}"
113
- />
114
- <div part="correct">${this._correctValue}</div>
115
- `}textChanged(e){if(this.disabled||this.readonly)return;let r=e.target;this.setEmptyAttribute(r.value),this._value!==r.value&&(this._value=r.value,this.saveResponse(r.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};l([d({type:Number,attribute:"expected-length"})],D.prototype,"expectedLength",2),l([d({type:String,attribute:"pattern-mask"})],D.prototype,"patternMask",2),l([d({type:String,attribute:"placeholder-text"})],D.prototype,"placeholderText",2),l([q()],D.prototype,"_value",2),l([q()],D.prototype,"_correctValue",2),l([q()],D.prototype,"_size",2),l([d({type:String,attribute:"class"})],D.prototype,"classNames",2),l([S("classNames")],D.prototype,"handleclassNamesChange",1),D=l([m("qti-text-entry-interaction")],D);var le=(s,t)=>{class e extends s{constructor(...o){super(...o);this._choiceElements=[];this.responseIdentifier="";this.minChoices=0;this.maxChoices=1;this.disabled=!1;this._handleDisabledChange=(o,n)=>{this._choiceElements.forEach(a=>a.disabled=n)};this.readonly=!1;this._handleReadonlyChange=(o,n)=>{this._choiceElements.forEach(a=>a.readonly=n)}}_handleMaxChoicesChange(o,n){this._determineInputType()}validate(){let o=this._choiceElements.filter(n=>this._getChoiceChecked(n)).length;return this.maxChoices!==0&&o>this.maxChoices?!1:o>=this.minChoices}set response(o){let n=Array.isArray(o)?o:[o];this._choiceElements.forEach(a=>{this._setChoiceChecked(a,n.includes(a.identifier))})}set correctResponse(o){let n=Array.isArray(o)?o:[o];if(n.length===0){this._choiceElements.forEach(a=>{a.removeAttribute("data-correct-response")});return}this._choiceElements.forEach(a=>{a.setAttribute("data-correct-response",n.includes(a.identifier)?"true":"false")})}connectedCallback(){super.connectedCallback(),this.addEventListener(`register-${t}`,this._registerChoiceElement),this.addEventListener(`unregister-${t}`,this._unregisterChoiceElement),this.addEventListener(`activate-${t}`,this._choiceElementSelectedHandler),this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(`register-${t}`,this._registerChoiceElement),this.removeEventListener(`unregister-${t}`,this._unregisterChoiceElement),this.removeEventListener(`activate-${t}`,this._choiceElementSelectedHandler)}_registerChoiceElement(o){o.stopPropagation();let n=o.target;n.disabled=this.disabled,this._choiceElements.push(n),this._setInputType(n)}_unregisterChoiceElement(o){o.stopPropagation();let n=o.target;this._choiceElements=this._choiceElements.filter(a=>a!==n)}_determineInputType(){this._choiceElements.forEach(o=>{this._setInputType(o)})}_setInputType(o){o.setAttribute("role",this.maxChoices===1?"radio":"checkbox")}_choiceElementSelectedHandler(o){this._toggleChoiceChecked(o.target),this.maxChoices===1&&this._choiceElements.forEach(n=>{n.identifier!==o.detail.identifier&&this._setChoiceChecked(n,!1)}),this._handleChoiceSelection()}_setChoiceChecked(o,n){o.setAttribute("aria-checked",n.toString())}_getChoiceChecked(o){return o.getAttribute("aria-checked")==="true"}_toggleChoiceChecked(o){let n=this._getChoiceChecked(o);this._setChoiceChecked(o,!n)}_handleChoiceSelection(){let o=this._choiceElements.filter(c=>this._getChoiceChecked(c)),n=o.map(c=>c.identifier);if(this.maxChoices>1&&this.maxChoices!==0){let c=o.length>=this.maxChoices;this._choiceElements.forEach(p=>{this._getChoiceChecked(p)||(p.disabled=c)})}let a=this.maxChoices===1?n[0]||void 0:n;this._saveResponse(a)}_saveResponse(o){this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:o}}))}}return l([d({attribute:"response-identifier"})],e.prototype,"responseIdentifier",2),l([d({type:Number,attribute:"min-choices"})],e.prototype,"minChoices",2),l([d({type:Number,attribute:"max-choices"})],e.prototype,"maxChoices",2),l([S("maxChoices",{waitUntilFirstUpdate:!0})],e.prototype,"_handleMaxChoicesChange",1),l([d({reflect:!0,type:Boolean})],e.prototype,"disabled",2),l([S("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"_handleDisabledChange",2),l([d({reflect:!0,type:Boolean})],e.prototype,"readonly",2),l([S("readonly",{waitUntilFirstUpdate:!0})],e.prototype,"_handleReadonlyChange",2),e};var It=class extends le(u,"qti-hottext"){constructor(){super(...arguments);this.render=()=>h`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};It=l([m("qti-hottext-interaction")],It);var it=class extends B{constructor(t){if(super(t),this.it=E,t.type!==ae.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===E||t==null)return this._t=void 0,this.it=t;if(t===M)return t;if(typeof t!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;let e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};it.directiveName="unsafeHTML",it.resultType=1;var ce=te(it);var de=class extends T{constructor(){super(...arguments);this.options=[];this.correctOption="";this.dataPrompt="select"}static get styles(){return[b`
116
- :host {
117
- display: inline-block;
118
- }
119
- slot {
120
- display: flex;
121
- flex-direction: column;
122
- }
123
- [role='menu'] {
124
- position: absolute;
125
- z-index: 1000;
126
- }
127
- .anchor {
128
- /* anchor-name: --infobox; */
129
- width: fit-content;
130
- }
131
-
132
- .positionedElement {
133
- position: absolute;
134
- /* position-anchor: --infobox; */
135
- /* top: anchor(bottom); */
136
- }
137
- `]}render(){return h`
138
- <select part="select" @change="${this.choiceSelected}" ?disabled="${this.disabled}" ?readonly="${this.readonly}">
139
- ${this.options.map(e=>h`
140
- <option value="${e.value}" ?selected="${e.selected}">${ce(e.textContent)}</option>
141
- `)}
142
- </select>
143
-
144
- ${ce(this.correctOption)}
145
- `}connectedCallback(){super.connectedCallback(),this.addEventListener("on-dropdown-selected",this.choiceSelected);let e=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...e.map(r=>({textContent:r.innerHTML,value:r.getAttribute("identifier"),selected:!1}))]}disconnectedCallback(){this.removeEventListener("on-dropdown-selected",this.choiceSelected)}validate(){let e=this.options.find(r=>r.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,r)=>_(C({},e),{selected:r===0}))}set response(e){this.options=this.options.map(r=>(e===r.value&&(r.selected=!0),r))}set correctResponse(e){if(e===""){this.correctOption="";return}this.correctOption=`<span part="correct-option">${this.options.find(r=>e===r.value).textContent}</span>`}choiceSelected(e){let r=e.target.value;this.options=this.options.map(i=>_(C({},i),{selected:i.value===r})),this.saveResponse(r)}};de.inputWidthClass=["","qti-input-width-2","qti-input-width-1","qti-input-width-3","qti-input-width-4","qti-input-width-6","qti-input-width-10","qti-input-width-15","qti-input-width-20","qti-input-width-72"],l([q()],de.prototype,"options",2),l([q()],de.prototype,"correctOption",2),l([d({attribute:"data-prompt",type:String})],de.prototype,"dataPrompt",2),de=l([m("qti-inline-choice-interaction")],de);var Ot=(s,t)=>{class e extends s{constructor(){super(...arguments);this._shuffle=!1}set shuffle(o){let n=this._shuffle;this._shuffle=o,o?this._shuffleChoices():this._resetShuffleChoices(),this.requestUpdate("shuffle",n)}get shuffle(){return this._shuffle}connectedCallback(){super.connectedCallback(),this.shuffle?this._shuffleChoices():this._resetShuffleChoices()}_shuffleChoices(){let o=Array.from(this.querySelectorAll(t)),n=[],a=[];o.forEach((y,v)=>{y.hasAttribute("fixed")?n.push({element:y,index:v}):a.push(y)}),a.length<=1&&console.warn("Shuffling is not possible with fewer than 2 non-fixed elements.");let c=!1,p=10,f=0;for(;!c&&f<p;){f++;for(let y=a.length-1;y>0;y--){let v=Math.floor(Math.random()*(y+1));[a[y],a[v]]=[a[v],a[y]]}if(c=a.some((y,v)=>o.indexOf(y)!==v),c)break}c||console.warn("Failed to shuffle the choices after multiple attempts.");let g=1;o.forEach((y,v)=>{y.hasAttribute("fixed")?y.style.setProperty("order",String(g++)):a.shift().style.setProperty("order",String(g++))})}_resetShuffleChoices(){Array.from(this.querySelectorAll("qti-simple-choice")).forEach((n,a)=>{n.style.setProperty("order","initial")})}}return l([d({type:String,reflect:!0,converter:ks})],e.prototype,"shuffle",1),e},ks={fromAttribute(s){return s==="true"},toAttribute(s){return s?"true":"false"}};var Li=(s,t)=>{class e extends s{constructor(){super(...arguments);this._classes=[];this._allLabels=["qti-labels-decimal","qti-labels-lower-alpha","qti-labels-upper-alpha"];this._allLabelSuffixes=["qti-labels-suffix-period","qti-labels-suffix-parenthesis"]}set class(o){o&&(this._classes=o.split(" "),this._addLabels())}get class(){var o;return((o=this._classes)==null?void 0:o.join(" "))||""}updated(o){super.updated(o),o.has("shuffle")&&this._addLabels()}_addLabels(){let o=this._classes.some(a=>this._allLabels.includes(a)||this._allLabelSuffixes.includes(a)),n=a=>!isNaN(+a);if(o){let c=Array.from(this.querySelectorAll("qti-simple-choice")).map(p=>p).map((p,f)=>({el:p,order:n(p.style.order)?+p.style.order:f+1})).sort((p,f)=>p.order-f.order).map(p=>p.el);for(let p=0;p<c.length;p++)c[p].marker=this._getLabel(p+1)}}_getLabel(o){let n=this._classes.filter(p=>this._allLabels.includes(p)).pop(),a=this._classes.filter(p=>this._allLabelSuffixes.includes(p)).pop();!n&&a&&(n="qti-labels-upper-alpha");let c="";switch(n){case"qti-labels-decimal":c=`${o}`;break;case"qti-labels-lower-alpha":c=`${String.fromCharCode(97+o-1)}`;break;case"qti-labels-upper-alpha":c=`${String.fromCharCode(65+o-1)}`;break}return a==="qti-labels-suffix-period"?c+=".":a==="qti-labels-suffix-parenthesis"&&(c+=")"),c}}return l([d({type:String,reflect:!0})],e.prototype,"class",1),e};var $i=b`
146
- [part='slot'] {
147
- /* display: flex; */
148
- /* flex-direction: column; */
149
- /* gap: var(--qti-gap-size); */
150
- --choice-interactions-stacking: 1;
151
- display: grid; /* grid */
152
- grid-template-columns: repeat(var(--choice-interactions-stacking), minmax(0, 1fr)); /* grid-cols-2 */
153
- gap: var(--qti-gap-size); /* gap-4 */
154
- /* qti-prompt {
155
- grid-column: span var(--choice-interactions-stacking) / span var(--choice-interactions-stacking);
156
- } */
157
- }
158
-
159
- :host(.qti-choices-stacking-1) [part='slot'] {
160
- --choice-interactions-stacking: 1;
161
- }
162
-
163
- :host(.qti-choices-stacking-2) [part='slot'] {
164
- --choice-interactions-stacking: 2;
165
- }
166
- :host(.qti-choices-stacking-3) [part='slot'] {
167
- --choice-interactions-stacking: 3;
168
- }
169
- :host(.qti-choices-stacking-4) [part='slot'] {
170
- --choice-interactions-stacking: 4;
171
- }
172
- :host(.qti-choices-stacking-5) [part='slot'] {
173
- --choice-interactions-stacking: 5;
174
- }
175
- :host()[part='slot'] {
176
- &.qti-orientation-horizontal {
177
- /* is the default layout */
178
- }
179
- }
180
- :host()[part='slot'] {
181
- &[orientation='horizontal'] {
182
- flex-direction: row;
183
- }
184
- }
185
- `;var Re=class extends Li(Ot(le(u,"qti-simple-choice"),"qti-simple-choice"),"qti-simple-choice"){render(){return h` <slot name="prompt"></slot><slot part="slot"></slot>`}};Re.styles=$i,l([d({type:String})],Re.prototype,"orientation",2),Re=l([m("qti-choice-interaction")],Re);var st=class extends u{render(){return h`<slot></slot>`}process(){let t=new yr,e=[...this.children];t.process(e)}};st.styles=[b`
186
- :host {
187
- display: none;
188
- }
189
- `],st=l([m("qti-outcome-processing")],st);var yr=class{process(t){for(let e of t)e.process()}};var Di=`<qti-response-processing>
190
- <qti-response-condition>
191
- <qti-response-if>
192
- <qti-match>
193
- <qti-variable identifier="RESPONSE"></qti-variable>
194
- <qti-correct identifier="RESPONSE"></qti-correct>
195
- </qti-match>
196
- <qti-set-outcome-value identifier="SCORE">
197
- <qti-base-value base-type="float">1</qti-base-value>
198
- </qti-set-outcome-value>
199
- </qti-response-if>
200
- <qti-response-else>
201
- <qti-set-outcome-value identifier="SCORE">
202
- <qti-base-value base-type="float">0</qti-base-value>
203
- </qti-set-outcome-value>
204
- </qti-response-else>
205
- </qti-response-condition>
206
- </qti-response-processing>`,Hi=`<qti-response-processing>
207
- <qti-response-condition>
208
- <qti-response-if>
209
- <qti-is-null>
210
- <qti-variable identifier="RESPONSE"></qti-variable>
211
- </qti-is-null>
212
- <qti-set-outcome-value identifier="SCORE">
213
- <qti-base-value base-type="float">0.0</qti-base-value>
214
- </qti-set-outcome-value>
215
- </qti-response-if>
216
- <qti-response-else>
217
- <qti-set-outcome-value identifier="SCORE">
218
- <qti-map-response identifier="RESPONSE"> </qti-map-response>
219
- </qti-set-outcome-value>
220
- </qti-response-else>
221
- </qti-response-condition>
222
- </qti-response-processing>`,Pi=`<qti-response-processing>
223
- <qti-response-condition>
224
- <qti-response-if>
225
- <qti-is-null>
226
- <qti-variable identifier="RESPONSE"></qti-variable>
227
- </qti-is-null>
228
- <qti-set-outcome-value identifier="SCORE">
229
- <qti-base-value base-type="float">0</qti-base-value>
230
- </qti-set-outcome-value>
231
- </qti-response-if>
232
- <qti-response-else>
233
- <qti-set-outcome-value identifier="SCORE">
234
- <qti-map-response-point identifier="RESPONSE"></qti-map-response-point>
235
- </qti-set-outcome-value>
236
- </qti-response-else>
237
- </qti-response-condition>
238
- </qti-response-processing>`;var xe=class extends u{render(){return h`<slot></slot>`}process(){let t=[...this.children];for(let e of t)e.process()}firstUpdated(t){if(this.getAttribute("template")){let e=this.getAttribute("template").split("/"),r=e[e.length-1].replace(".xml","");switch(this.innerHTML="",r){case"map_response":{this.appendChild(this.fragmentFromString(Hi).firstElementChild.firstElementChild);break}case"map_response_point":{this.appendChild(this.fragmentFromString(Pi).firstElementChild.firstElementChild);break}case"match_correct":this.appendChild(this.fragmentFromString(Di).firstElementChild.firstElementChild);break}}}fragmentFromString(t){return document.createRange().createContextualFragment(t)}};xe.styles=[b`
239
- :host {
240
- display: none;
241
- }
242
- `],xe=l([m("qti-response-processing")],xe);var X=class extends u{render(){return h`<slot></slot>`}process(){throw new Error("Not implemented")}};X=l([m("qti-rule")],X);var Ut=class extends X{get childExpression(){return this.firstElementChild}process(){let t=this.getAttribute("identifier"),e=this.closest("qti-assessment-item").getVariable(t),r;return e.interpolationTable&&(r=e.interpolationTable.get(parseInt(this.childExpression.calculate()))),r==null?(console.warn("lookupOutcomeValue: value is null or undefined"),0):(this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:this.identifier,value:Je(r)}})),r)}};l([d({type:String})],Ut.prototype,"identifier",2);customElements.define("qti-lookup-outcome-value",Ut);var xr=class extends X{render(){return h`<slot></slot>`}process(){let t=[...this.children];for(let e=0;e<t.length;e++){let r=t[e];if(r.calculate()){r.process();return}}}};customElements.define("qti-response-condition",xr);var qr=class extends X{process(){let t=this.getAttribute("identifier"),e=this.firstElementChild,i=new wr(e).process();this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:t,value:Array.isArray(i)?i.map(o=>Je(o)):Je(i)}}))}},wr=class{constructor(t){this.expression=t}process(){let t=this.expression?this.expression.calculate():null;if(t==null){console.warn("setOutcomeValue: value is null or undefined");return}return t}};customElements.define("qti-set-outcome-value",qr);var ot=class extends u{render(){return h`<slot></slot>`}calculate(){return!0}getSubRules(){return[...this.children]}process(){let t=this.getSubRules();for(let e=0;e<t.length;e++)t[e].process()}};customElements.define("qti-response-else",ot);var nt=class extends ot{calculate(){return this.firstElementChild.calculate()}getSubRules(){let t=[];for(let e=1;e<this.children.length;e++)t.push(this.children[e]);return t}};customElements.define("qti-response-if",nt);var Er=class extends nt{render(){return h`${super.render()}`}};customElements.define("qti-response-else-if",Er);var x=class extends u{constructor(){super(...arguments);this.getVariables=()=>Array.from(this.children).map(e=>{switch(e.tagName.toLowerCase()){case"qti-base-value":return{baseType:e.getAttribute("base-type"),value:e.textContent.trim(),cardinality:"single"};case"qti-variable":{let r=e.getAttribute("identifier")||"";return this.assessmentItem.getVariable(r)}case"qti-multiple":{let i=e.getResult();return i.length>0?{identifier:"",baseType:i[0].baseType,value:i.map(o=>o.value),cardinality:"multiple",type:"response"}:null}case"qti-correct":{let r=e.getAttribute("identifier")||"",i=this.assessmentItem.getResponse(r);return{baseType:i.baseType,value:i.correctResponse,cardinality:i.cardinality}}default:{try{return{baseType:"integer",value:e.getResult().toString(),cardinality:"single"}}catch(r){console.warn("default not sufficient")}return null}}}).filter(e=>e!==null)}render(){return h`<pre>${JSON.stringify(this.result,null,2)}</pre>
243
- <slot></slot>`}calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};x.styles=b`
244
- slot {
245
- display: none;
246
- }
247
- `,l([q()],x.prototype,"result",2);var H=class extends x{calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};var zt=class extends Ts(H){calculate(){return this.calculateChildren(Array.from(this.children))}};function Ts(s){return class extends s{calculateChildren(e){return e.map(i=>{let o=i;if(!o.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let n=o.calculate();if(typeof n=="string")if(n==="true")n=!0;else if(n==="false")n=!1;else return console.error("unexpected value in qti-and, expected boolean"),null;return n}).every(i=>typeof i=="boolean"&&i)}}}customElements.define("qti-and",zt);var Ft=class extends x{constructor(){super(...arguments);this.baseType="string"}getResult(){return this.textContent.trim()}};l([d({type:String,attribute:"base-type"})],Ft.prototype,"baseType",2);customElements.define("qti-base-value",Ft);var Cr=class extends H{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(c=>o.includes(c)).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}};customElements.define("qti-contains",Cr);var kr=class extends x{get interpretation(){return this.getAttribute("interpretation")||""}getResult(){let t=this.getAttribute("identifier")||"",e=this.closest("qti-assessment-item").getResponse(t);return e.correctResponse,e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",kr);var Bt=class extends x{constructor(){super(...arguments);this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let r=parseInt(this.getAttribute("figures")||"0");return isNaN(r)?(console.error("figures attribute is not a number"),null):r<0?(console.error("figures attribute is negative"),null):r<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):r}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],i=e[1];if(this.roundingMode===null)return null;if(r.cardinality!=="single"||i.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(i.value))return console.error("unexpected cardinality in qti equal"),!1;switch(e[0].baseType){case"integer":case"float":{let o=parseFloat(r.value),n=parseFloat(i.value);if(!isNaN(o)&&!isNaN(n))return this.roundingMode==="significantFigures"?o.toPrecision(this.figures)===n.toPrecision(this.figures):Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(n*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${o}, ${n}`);break}default:{console.error("values other than float and int cannot be used in equalRounded operator.");break}}return!1}return console.error("unexpected number of children in qti-equal-rounded"),null}};l([d({type:String})],Bt.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",Bt);var P=class{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 jt=class extends x{constructor(){super(...arguments);this.toleranceMode="exact"}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],i=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):r.cardinality!=="single"||i.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(i.value)?(console.error("unexpected cardinality in qti equal"),!1):P.compareSingleValues(r.value,i.value,r.baseType)}return console.error("unexpected number of children in qti-equal"),null}};l([d({type:String})],jt.prototype,"toleranceMode",2);customElements.define("qti-equal",jt);var Tr=class extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value>+r.value;console.error("unexpected baseType or cardinality in qti gt")}return console.error("unexpected number of children in qt"),null}};customElements.define("qti-gt",Tr);var Ar=class extends H{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value>=+r.value:(console.error("unexpected baseType or cardinality in qti gte"),null)}return console.log("unexpected number of children in qte"),null}};customElements.define("qti-gte",Ar);var _r=class extends x{getResult(){if(this.children.length===1){let t=this.getVariables();if(!t)return!0;let e=t[0].value;return e==null||e==null||e===""}return console.error("unexpected number of children in qti Null"),null}};customElements.define("qti-is-null",_r);var Sr=class extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];if(e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value<+r.value;console.error("unexpected baseType or cardinality in qti lt")}return console.error("unexpected number of children in lt"),null}};customElements.define("qti-lt",Sr);var Rr=class extends H{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return e.baseType===r.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value<=+r.value:(console.error("unexpected baseType or cardinality in qti lte"),null)}return console.log("unexpected number of children in lte"),null}};customElements.define("qti-lte",Rr);var Xt=class extends x{getResult(){let t=this.assessmentItem.getResponse(this.identifier);if(!t)return console.warn(`Response ${this.identifier} can not be found`),null;let e=t.mapping,r=Array.isArray(t.value)?t.value:[t.value],i=0;for(let o of r){let n=e.mapEntries.find(a=>P.compareSingleValues(a.mapKey,o,t.baseType));n==null||n.mappedValue==null?i+=e.defaultValue:i+=n.mappedValue}return e.lowerBound!=null&&(i=Math.max(e.lowerBound,i)),e.upperBound!=null&&(i=Math.min(e.upperBound,i)),i}};l([d({type:String})],Xt.prototype,"identifier",2);customElements.define("qti-map-response",Xt);var Me=class extends u{constructor(){super(...arguments);this.defaultValue=0}get mapEntries(){return Array.from(this.querySelectorAll("qti-map-entry")).map(e=>({mapKey:e.getAttribute("map-key"),mappedValue:+e.getAttribute("mapped-value")}))}};l([d({attribute:"default-value",type:Number})],Me.prototype,"defaultValue",2),l([d({attribute:"lower-bound",type:Number})],Me.prototype,"lowerBound",2),l([d({attribute:"upper-bound",type:Number})],Me.prototype,"upperBound",2);customElements.define("qti-mapping",Me);var Mr=class s extends x{getResult(){if(this.children.length===2){let t=this.getVariables(),e=t[0],r=t[1];return s.match(e,r)}return console.error("unexpected number of children in match"),null}static match(t,e){var r;switch(e.cardinality){case"single":return t.value===null?!1:Array.isArray(t.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):P.compareSingleValues((r=t.value)==null?void 0:r.toString(),e.value.toString(),e.baseType);case"ordered":{if(!Array.isArray(t.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(t.value.length!==e.value.length)return!1;for(let i=0;i<t.value.length;i++)if(!P.compareSingleValues(e.value[i],t.value[i],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 i=0;for(let o of e.value){let n=null,a=[...t.value];for(let c of a)if(P.compareSingleValues(o,c,e.baseType)){n=c;break}if(n!==null)a.splice(a.indexOf(n),1);else return!1;i++}return!0}default:return console.error("unexpected cardinality in qti match"),!1}}};customElements.define("qti-match",Mr);var Lr=class extends x{getResult(){let t=this.getVariables();this.children.length!==2&&console.warn("The member operator takes two sub-expressions");let[e,r]=t;if(e.baseType!==r.baseType&&console.warn("Which must both have the same base-type"),r.cardinality==="multiple"||r.cardinality==="ordered"||console.warn("and the second must be a multiple or ordered container"),(e.baseType==="float"||r.baseType==="float")&&console.warn("The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||r.baseType==="duration")&&console.warn("It must not be used on sub-expressions with a base-type of duration"),e.value===null||r.value===null)return null;let i=e.value;return r.value.includes(i)}};customElements.define("qti-member",Lr);var $r=class extends x{getResult(){let t=this.getVariables();if(t.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of t)if(e.cardinality!=="multiple"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti multiple"),[];return t}};customElements.define("qti-multiple",$r);var Dr=class extends x{render(){return h`${super.render()}`}getResult(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",Dr);var Hr=class extends H{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();if(typeof i=="string")if(i==="true")i=!0;else if(i==="false")i=!1;else return console.error("unexpected value in qti-or, expected boolean"),null;return i}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",Hr);var Pr=class extends x{getResult(){let t=this.getVariables();if(t.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of t)if(e.cardinality!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return t}};customElements.define("qti-ordered",Pr);var at=class extends u{render(){var e,r;let t=(r=(e=this.itemContext)==null?void 0:e.variables.find(i=>i.identifier===this.identifier))==null?void 0:r.value;return h`${JSON.stringify(t,null,2)}`}calculate(){let t=this.closest("qti-assessment-item"),e=this.identifier;return t.getVariable(e).value}};l([d({type:String})],at.prototype,"identifier",2),l([J({context:I,subscribe:!0}),q()],at.prototype,"itemContext",2);customElements.define("qti-printed-variable",at);var Nr=class extends x{getResult(){return this.getVariables().reduce((r,i)=>{if(i.baseType=="float"||i.baseType=="integer")try{return r*parseInt(i.value.toString())}catch(o){console.warn("can not convert to number")}else console.warn(`has another baseType ${i.baseType}`);return r},1)}};customElements.define("qti-product",Nr);var Yt=class extends x{constructor(){super(...arguments);this.caseSensitive="true"}getResult(){if(this.children.length===2){let e=this.getVariables(),r=e[0],i=e[1];if(r.cardinality!=="single"||i.cardinality!=="single"||Array.isArray(r.value)||Array.isArray(i.value))return console.error("unexpected cardinality in qti string-match"),!1;let o=this.caseSensitive==="true"?r.value:r.value.toLowerCase(),n=this.caseSensitive==="true"?i.value:i.value.toLowerCase();return P.compareSingleValues(o,n,r.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};l([d({type:String,attribute:"case-sensitive"})],Yt.prototype,"caseSensitive",2);customElements.define("qti-string-match",Yt);var Vr=class extends x{constructor(){super(),this._expression=new Ir(Array.from(this.children))}getResult(){return this._expression.calculate()}},Ir=class{constructor(t){this.expressions=t}calculate(){return this.expressions.map(e=>{if(!e.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=e.calculate();return Number.isNaN(r)?(console.error("unexpected value in qti-sum, expected number"),null):Number(r)}).reduce((e,r)=>e+r,0)}};customElements.define("qti-sum",Vr);var Or=class extends x{getResult(){let t=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariable(t).value}};customElements.define("qti-variable",Or);var pe=class extends T{constructor(){super(...arguments);this._errorMessage=null;this.loadConfig=async(e,r)=>{e=this.removeDoubleSlashes(e);try{let i=await fetch(e);if(i.ok){let n=await i.json();for(let a in n.paths)r&&(n.paths[a]=this.getResolvablePath(n.paths[a],r));return n}}catch(i){}return null};this.getResolvablePathString=(e,r)=>(e=e.replace(/\.js$/,""),e!=null&&e.toLocaleLowerCase().startsWith("http")||!r?e:this.removeDoubleSlashes(`${r}/${e}`));this.getResolvablePath=(e,r)=>Array.isArray(e)?e.map(i=>this.getResolvablePathString(i,r)):this.getResolvablePathString(e,r)}convertQtiVariableJSON(e){for(let r in e)if(e.hasOwnProperty(r)){let i=e[r];if(i){for(let o in i)if(i.hasOwnProperty(o)){let n=i[o];if(Array.isArray(n))return n.map(String);if(n!=null)return String(n)}}}return null}startChecking(){this.intervalId=setInterval(()=>{let e=this.pci.getResponse(),r=this.pci.getResponse(),i=JSON.stringify(e);if(i!==this.rawResponse){this.rawResponse=i;let o=this.convertQtiVariableJSON(r);this.response=o,this.saveResponse(o)}},200)}stopChecking(){this.intervalId!==void 0&&clearInterval(this.intervalId)}validate(){return!0}set response(e){}getTAOConfig(e){let r=e.querySelectorAll("properties"),i={},o=a=>{let c={},p=a.getAttribute("key");if(p){let f=Array.from(a.children),g=f.map(v=>v.getAttribute("key"));g.length>0&&!g.find(v=>!Number.isInteger(+v))?c[p]=f.map(v=>n(v)):c[p]=a.textContent}return c},n=a=>{if(a){let c={};for(let p of a.children)c=C(C({},c),o(p));return c}};for(let a of r)return a.getAttribute("key")||(i=C(C({},i),n(a))),i;return console.log("Can not find qti-custom-interaction config"),null}register(e){this.pci=e;let r=this.parentElement.tagName==="QTI-CUSTOM-INTERACTION"?"TAO":"IMS",i=r=="IMS"?this.querySelector("qti-interaction-markup"):this.querySelector("markup");i.classList.add("qti-customInteraction"),r=="TAO"&&this.querySelector("properties")&&(this.querySelector("properties").style.display="none");let o=r=="IMS"?{properties:this.dataset,onready:()=>{console.log("onready")}}:this.getTAOConfig(this);r=="IMS"?e.getInstance(i,o,void 0):e.initialize(this.customInteractionTypeIdentifier,i.firstElementChild,o),r=="TAO"&&Array.from(this.querySelectorAll("link")).map(a=>a.getAttribute("href")).forEach(a=>{let c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.media="screen",c.href=a,i.appendChild(c)}),this.startChecking()}connectedCallback(){super.connectedCallback(),define("qtiCustomInteractionContext",()=>({register:i=>{this.register(i)},notifyReady:()=>{}}));let e=this.buildRequireConfig();requirejs.config(e)(["require"],i=>{i([this.module])})}disconnectedCallback(){super.disconnectedCallback(),requirejs.undef(this.customInteractionTypeIdentifier);let e=requirejs.s.contexts;delete e[this.customInteractionTypeIdentifier],this.stopChecking()}buildRequireConfig(){let e={context:this.customInteractionTypeIdentifier,catchError:!0,paths:window.requirePaths||{},shim:window.requireShim||{}};if(!globalThis.require)return this._errorMessage="RequireJS not found. Please load it via CDN: https://cdnjs.com/libraries/require.js",null;let r=this.getAttribute("data-base-url"),i=this.querySelector("qti-interaction-modules");if(i){let o=i.querySelectorAll("qti-interaction-module");for(let n of o){let a=n.getAttribute("id"),c=n.getAttribute("primary-path"),p=n.getAttribute("fallback-path");if(a&&c){let f=p?this.combineRequireResolvePaths(this.getResolvablePath(c,r),this.getResolvablePath(p,r)):this.getResolvablePath(c,r),g=e.paths[a]||[];e.paths[a]=this.combineRequireResolvePaths(g,f)}}}return e}combineRequireResolvePaths(e,r){let i=Array.isArray(e)?e:[e],o=Array.isArray(r)?r:[r];return i.concat(o)}removeDoubleSlashes(e){return e.replace(/([^:]\/)\/+/g,"$1").replace(/\/\//g,"/").replace("http:/","http://").replace("https:/","https://")}render(){return h`<slot></slot>${this._errorMessage&&h`<div style="color:red">
248
- <h1>Error</h1>
249
- ${this._errorMessage}
250
- </div>`}`}};l([d({type:String,attribute:"response-identifier"})],pe.prototype,"responseIdentifier",2),l([d({type:String,attribute:"module"})],pe.prototype,"module",2),l([d({type:String,attribute:"custom-interaction-type-identifier"})],pe.prototype,"customInteractionTypeIdentifier",2),l([q()],pe.prototype,"_errorMessage",2),pe=l([m("qti-portable-custom-interaction")],pe);var Wt=class s{constructor(){this.touchStartTime=0;this.touchStartPoint=null;this.lastClickTime=0;this.isDraggable=!1;this.dragSource=null;this.dragClone=null;this.touchEndTriggered=!1;this.isDragging=!1;this.initialTransform="";this.hasDispatchedDragStart=!1;this.rootNode=null;this.focusedElement=null;this.focusableDropZones=[];this.currentDropZoneIndex=-1;this.dataTransfer={data:{},setData(t,e){this.data[t]=e},getData(t){return this.data[t]},effectAllowed:"move"};this.cloneOffset={x:0,y:0};this.lastTarget=null;this.currentDropTarget=null;this.allowClick=!0;this.copyStylesForDragClone=!0;this.dragOnClickEnabled=!1;this.useDragClone=!1;this.MIN_DRAG_DISTANCE=5;this.DRAG_CLONE_OPACITY=1;if(s.instance)return s.instance;s.instance=this,document.addEventListener("touchmove",this.handleTouchMove.bind(this),{passive:!1}),document.addEventListener("mousemove",this.handleTouchMove.bind(this),{passive:!1}),document.addEventListener("touchend",this.handleTouchEnd.bind(this),{passive:!1}),document.addEventListener("mouseup",this.handleTouchEnd.bind(this),{passive:!1}),document.addEventListener("touchcancel",this.handleTouchCancel.bind(this),{passive:!1}),document.addEventListener("keydown",this.handleKeyDown.bind(this)),document.addEventListener("keyup",this.handleKeyUp.bind(this))}addDraggableElements(t){t.forEach(e=>{e.setAttribute("tabindex","0"),e.addEventListener("focus",()=>this.focusedElement=e),e.addEventListener("blur",()=>this.focusedElement=null),e.addEventListener("touchstart",this.handleTouchStart.bind(this),{passive:!1}),e.addEventListener("mousedown",this.handleTouchStart.bind(this),{passive:!1})})}handleTouchStart(t){this.touchStartTime=Date.now();let{x:e,y:r}=this.getEventCoordinates(t);if(this.touchStartPoint={x:e,y:r},this.dragSource=t.currentTarget,this.isDraggable=!0,this.rootNode=this.dragSource.getRootNode(),this.dragOnClickEnabled&&(this.isDragging=!0,this.createDragClone(t,{clientX:e,clientY:r})),!this.useDragClone){let i=window.getComputedStyle(this.dragSource);this.initialTransform=i.transform==="none"?"":i.transform,this.initialTransition=i.transition||"",this.dragSource.style.transition="none";let o=this.dragSource.getBoundingClientRect();this.cloneOffset.x=e-o.left,this.cloneOffset.y=r-o.top,this.dragSource.style.zIndex="9999",this.dragSource.focus()}t.preventDefault()}handleTouchMove(t){if(this.isDraggable&&this.dragSource){let{x:e,y:r}=this.getEventCoordinates(t),i={clientX:e,clientY:r};this.calculateDragDistance(i)>=this.MIN_DRAG_DISTANCE&&(this.dragSource.style.pointerEvents="none",this.isDragging=!0),this.createDragClone(t,i),t.preventDefault()}}createDragClone(t,e){if(!this.isDragging)return;if(this.useDragClone){if(!this.dragClone){if(this.dragSource.style.opacity=this.DRAG_CLONE_OPACITY.toString(),this.dragClone=this.dragSource.cloneNode(!0),this.copyStylesForDragClone){let i=window.getComputedStyle(this.dragSource);for(let o of i)this.dragClone.style[o]=i.getPropertyValue(o)}this.rootNode instanceof ShadowRoot?this.rootNode.host.appendChild(this.dragClone):this.rootNode instanceof Document&&document.body.appendChild(this.dragClone),this.calculateClonePosition(e),this.setDragCloneStyles(e),this.dispatchCustomEvent(this.dragSource,"dragstart")}this.updateDragClonePosition(e)}else if(this.touchStartPoint){let i=e.clientX-this.touchStartPoint.x,o=e.clientY-this.touchStartPoint.y;this.dragSource.style.transform=`${this.initialTransform} translate(${i}px, ${o}px)`,this.hasDispatchedDragStart||(this.dispatchCustomEvent(this.dragSource,"dragstart"),this.hasDispatchedDragStart=!0)}let r=this.findDropTarget(t);r!==this.lastTarget&&(this.dispatchCustomEvent(r,"dragenter"),this.dispatchCustomEvent(this.lastTarget,"dragleave"),this.lastTarget=r),this.currentDropTarget=r,this.currentDropTarget&&this.dispatchCustomEvent(r,"dragover")}handleTouchEnd(t){var r;this.touchEndTriggered=!0,this.isDraggable=!1;let e=!1;if(this.currentDropTarget)this.dispatchCustomEvent(this.currentDropTarget,"drop"),this.dispatchCustomEvent(this.dragSource,"dragend"),e=!0;else if(this.isDragging){let i=new CustomEvent("dragend",{bubbles:!0,cancelable:!0});i.dataTransfer={dropEffect:"none"},(r=this.dragSource)==null||r.dispatchEvent(i)}this.resetDragState(e)}handleTouchCancel(t){this.resetDragState()}findDropTarget(t){let{x:e,y:r}=this.getEventCoordinates(t);return this.getDropTargetAtPoint(document,e,r)}getDropTargetAtPoint(t,e,r,i=0){if(i>2)return null;let n=t.elementFromPoint(e,r);if(!n)return null;if(n.hasAttribute("dropzone"))return n;let a=n.parentElement;for(;a;){if(a.hasAttribute("dropzone"))return a;a=a.parentElement}if(n.shadowRoot&&i<2){let c=this.getDropTargetAtPoint(n.shadowRoot,e,r,i+1);if(c)return c}return null}handleKeyDown(t){this.focusedElement&&(t.key===" "&&!this.isDragging?(t.preventDefault(),this.isDraggable=!0,this.dragSource=this.focusedElement,this.isDragging=!0,this.collectDropZones(),this.dispatchCustomEvent(this.dragSource,"dragstart")):t.key==="Tab"&&this.isDragging&&(t.preventDefault(),this.moveToNextDropZone()))}handleKeyUp(t){t.key===" "&&this.isDragging&&this.currentDropTarget&&(t.preventDefault(),this.dispatchCustomEvent(this.currentDropTarget,"drop"),this.dispatchCustomEvent(this.dragSource,"dragend"),this.resetDragState(!0))}collectDropZones(){this.focusableDropZones=Array.from(document.querySelectorAll("[dropzone]")),this.currentDropZoneIndex=-1}moveToNextDropZone(){if(this.focusableDropZones.length===0)return;this.currentDropZoneIndex=(this.currentDropZoneIndex+1)%this.focusableDropZones.length;let t=this.focusableDropZones[this.currentDropZoneIndex];t.focus(),this.currentDropTarget=t,this.dispatchCustomEvent(t,"dragenter")}getEventCoordinates(t,e=!1){let r=t.touches?t.touches[0]:t;return{x:e?r.pageX:r.clientX,y:e?r.pageY:r.clientY}}calculateClonePosition(t){let e=this.dragSource.getBoundingClientRect();this.cloneOffset.x=t.clientX-e.left,this.cloneOffset.y=t.clientY-e.top}setDragCloneStyles(t){this.dragClone.style.position="fixed",this.dragClone.style.top=`${t.clientY-this.cloneOffset.y}px`,this.dragClone.style.left=`${t.clientX-this.cloneOffset.x}px`,this.dragClone.style.pointerEvents="none",this.dragClone.style.zIndex="999999"}updateDragClonePosition(t){requestAnimationFrame(()=>{if(this.touchEndTriggered||!this.dragClone)return;let e=t.clientX-this.cloneOffset.x,r=t.clientY-this.cloneOffset.y,{newLeft:i,newTop:o}=this.applyBoundaries(e,r,this.dragClone);this.dragClone.style.left=`${i}px`,this.dragClone.style.top=`${o}px`})}applyTransformBoundaries(t,e){let r;this.rootNode instanceof ShadowRoot?r=this.rootNode.host.getBoundingClientRect():this.rootNode instanceof Document?r=document.documentElement.getBoundingClientRect():r=new DOMRect(0,0,window.innerWidth,window.innerHeight);let i=this.dragSource.getBoundingClientRect(),o=i.width,n=i.height,a=i.left+t,c=i.top+e,p=Math.max(r.left,Math.min(a,r.right-o)),f=Math.max(r.top,Math.min(c,r.bottom-n)),g=p-i.left,y=f-i.top;return{boundedDeltaX:g,boundedDeltaY:y}}applyBoundaries(t,e,r){let i;this.rootNode instanceof ShadowRoot?i=this.rootNode.host.getBoundingClientRect():this.rootNode instanceof Document?i=document.documentElement.getBoundingClientRect():i=new DOMRect(0,0,window.innerWidth,window.innerHeight);let o=r.getBoundingClientRect(),n=o.width,a=o.height,c=Math.max(i.left,Math.min(t,i.right-n)),p=Math.max(i.top,Math.min(e,i.bottom-a));return{newLeft:c,newTop:p}}calculateDragDistance(t){let e=Math.abs(t.clientX-this.touchStartPoint.x),r=Math.abs(t.clientY-this.touchStartPoint.y);return e+r}dispatchCustomEvent(t,e,r=!0){if(!t)return;let i=new CustomEvent(e,{bubbles:r,cancelable:!0});i.dataTransfer=this.dataTransfer,t.dispatchEvent(i)}resetDragState(t=!1){var e;this.isDragging&&(this.useDragClone?(this.dragSource.style.opacity="1.0",(e=this.dragClone)==null||e.parentElement.removeChild(this.dragClone)):(t||(this.dragSource.style.transform="translate(0, 0)"),this.dragSource.style.zIndex="",this.dragSource.style.pointerEvents="",this.dragSource.style.transition=this.initialTransition,this.initialTransition="")),this.isDragging=!1,this.dragSource=null,this.dragClone=null,this.isDraggable=!1,this.touchStartTime=0,this.touchStartPoint=null,this.touchEndTriggered=!1,this.dataTransfer={data:{},setData(r,i){this.data[r]=i},getData(r){return this.data[r]},effectAllowed:"move"},this.cloneOffset={x:0,y:0},this.lastTarget=null,this.currentDropTarget=null,this.allowClick=!0,this.initialTransform="",this.hasDispatchedDragStart=!1,this.rootNode=null}};var Ni=(s,t,e)=>{class r extends s{constructor(){super(...arguments);this.disabled=!1}firstUpdated(n){if(this.isMatchTabular())return;super.firstUpdated(n);let a=this.getDroppableElements();this.initializeEventHandlers(),a.forEach(c=>{this.prepareDroppable(c),this.observeDroppableAttributes(c)})}isMatchTabular(){return this.classList.contains("qti-match-tabular")}getDroppableElements(){return Array.from(t?this.shadowRoot.querySelectorAll(e):this.querySelectorAll(e))}initializeEventHandlers(){this.dragoverHandler=this.dragoverHandler.bind(this),this.dragleaveHandler=this.dragleaveHandler.bind(this),this.dragenterHandler=this.dragenterHandler.bind(this),this.dropHandler=this.dropHandler.bind(this)}prepareDroppable(n){n.setAttribute("dropzone","move"),n.addEventListener("dragleave",this.dragleaveHandler),this.attachEventListeners(n)}observeDroppableAttributes(n){this.observer=new MutationObserver(a=>{a.forEach(({attributeName:c})=>{c==="disabled"&&this.toggleDroppableHandlers(n)})}),this.observer.observe(n,{attributes:!0})}toggleDroppableHandlers(n){n.hasAttribute("disabled")?this.removeEventListeners(n):this.attachEventListeners(n)}attachEventListeners(n){n.addEventListener("dragover",this.dragoverHandler),n.addEventListener("dragenter",this.dragenterHandler),n.addEventListener("drop",this.dropHandler)}removeEventListeners(n){n.removeEventListener("dragover",this.dragoverHandler),n.removeEventListener("dragenter",this.dragenterHandler),n.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var n;this.isMatchTabular()||(super.disconnectedCallback(),(n=this.observer)==null||n.disconnect())}dragenterHandler(n){n.preventDefault()}dragoverHandler(n){return n.preventDefault(),this.activateDroppable(n.currentTarget),n.dataTransfer.dropEffect="move",!1}activateDroppable(n){n.setAttribute("active","")}async dropHandler(n){n.preventDefault();let a=n.currentTarget,c=this.findDraggable(n.dataTransfer.getData("text"));return!c||!this.isValidDrop(a,c)?(c.style.transform="translate(0, 0)",!1):(await this.moveDraggableToDroppable(c,a),this.deactivateDroppable(a),!1)}findDraggable(n){return this.querySelector(`[identifier=${n}]`)||this.shadowRoot.querySelector(`[identifier=${n}]`)}isValidDrop(n,a){return a.parentElement.getAttribute("identifier")!==n.getAttribute("identifier")}async moveDraggableToDroppable(n,a){let c=()=>{n.style.transform="translate(0, 0)",a.appendChild(n),this.checkMaxAssociations(),this.saveResponse()};if(!document.startViewTransition){c();return}await document.startViewTransition(c).finished}deactivateDroppable(n){n.removeAttribute("active")}dragleaveHandler(n){return n.preventDefault(),this.deactivateDroppable(n.currentTarget),n.dataTransfer.dropEffect="none",!1}}return l([d({type:Boolean,reflect:!0})],r.prototype,"disabled",2),r};var Vi=(s,t,e)=>{class r extends s{}return r};var Y=(s,t,e,r)=>{class i extends Vi(Ni(s,e,r),r,t){constructor(){super(...arguments);this.draggables=new Map;this.droppables=[];this.responseIdentifier="";this.configuration={copyStylesDragClone:!0,dragCanBePlacedBack:!0,dragOnClick:!1};this.disabled=!1;this.readonly=!1;this.minAssociations=1;this.maxAssociations=1;this.handleDragStart=a=>{let c=a.currentTarget;a.dataTransfer.setData("text",c.getAttribute("identifier")),c.setAttribute("dragging",""),this.activateDroppables()};this.handleDragEnd=a=>{a.preventDefault(),this.deactivateDroppables();let c=a.currentTarget;c.removeAttribute("dragging"),this.wasDropped(a)||this.configuration.dragCanBePlacedBack&&this.restoreInitialDraggablePosition(c)}}handleDraggablesChange(a,c){if(this.isMatchTabular())return;let p=this.filterExistingDraggables(a);p.length>0&&this.addNewDraggables(p)}firstUpdated(a){super.firstUpdated(a),this.initializeDroppables()}connectedCallback(){super.connectedCallback(),this.initializeDragDropApi()}initializeDragDropApi(){this.dragDropApi=new Wt,this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,detail:this}))}isMatchTabular(){return this.classList.contains("qti-match-tabular")}filterExistingDraggables(a){return a.filter(c=>!this.draggables.has(c))}addNewDraggables(a){this.dragDropApi.addDraggableElements(a),a.forEach(c=>this.storeDraggable(c))}storeDraggable(a){let c=Array.from(a.parentNode.children).indexOf(a);this.draggables.set(a,{parent:a.parentElement,index:c}),a.style.viewTransitionName=`drag-${c}-${this.getAttribute("identifier")}`,a.setAttribute("qti-draggable","true"),a.addEventListener("dragstart",this.handleDragStart),a.addEventListener("dragend",this.handleDragEnd)}initializeDroppables(){this.droppables=Array.from(e?this.shadowRoot.querySelectorAll(r):this.querySelectorAll(r))}activateDroppables(){this.droppables.forEach(a=>a.setAttribute("enabled",""))}deactivateDroppables(){this.droppables.forEach(a=>a.removeAttribute("enabled"))}wasDropped(a){return a.dataTransfer.dropEffect!=="none"}wasMoved(a){return a.dataTransfer.dropEffect==="move"}async restoreInitialDraggablePosition(a){let{parent:c,index:p}=this.draggables.get(a),f=Math.min(p,c.children.length),g=(v,w,k)=>{let A=Math.min(k,w.children.length);w.insertBefore(v,w.children[A]),v.style.transform="translate(0, 0)",this.checkMaxAssociations(),this.saveResponse()};if(!document.startViewTransition){g(a,c,p);return}let y=document.startViewTransition(()=>{a.style.transform="",g(a,c,p)})}checkMaxAssociations(){this.droppables.forEach((a,c)=>{let p=+(a.getAttribute("match-max")||1);a.querySelectorAll('[qti-draggable="true"]').length>=p?this.disableDroppable(a):this.enableDroppable(a)})}disableDroppable(a){a.setAttribute("disabled",""),a.removeAttribute("dropzone")}enableDroppable(a){a.removeAttribute("disabled"),a.setAttribute("dropzone","move")}set response(a){this.isMatchTabular()||(this.resetDroppables(),a==null||a.forEach(c=>this.placeResponse(c)))}placeResponse(a){let[c,...p]=a.split(" ").reverse(),f=this.findDroppableById(c);p.forEach(g=>this.placeDraggableInDroppable(g,f))}findDroppableById(a){return this.droppables.find(c=>c.getAttribute("identifier")===a)}async placeDraggableInDroppable(a,c){let p=this.querySelector(`[identifier=${a}]`);if(!c||!p){console.error(`Cannot find draggable or droppable with the given identifier: ${a}`);return}let f=()=>{p.style.transform="translate(0, 0)",c.appendChild(p),this.checkMaxAssociations()};document.startViewTransition?await document.startViewTransition(f).finished:f()}validate(){let a=this.getValidAssociations();return this.minAssociations<=0||this.minAssociations<=a}getValidAssociations(){return this.droppables.filter(a=>a.childElementCount>0).length}saveResponse(){let a=this.collectResponseData();this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:a}}))}collectResponseData(){return this.droppables.map(a=>{let c=a.querySelectorAll('[qti-draggable="true"]'),p=Array.from(c).map(g=>g.getAttribute("identifier")),f=a.getAttribute("identifier");return[...p,f].join(" ")})}reset(a=!0){this.resetDroppables(),a&&this.saveResponse()}async resetDroppables(){let a=(p,f,g)=>{p.style.transform="translate(0, 0)";let y=Math.min(g,f.children.length);f.insertBefore(p,f.children[y])};if(!document.startViewTransition){this.draggables.forEach(({parent:p,index:f},g)=>{a(g,p,f)});return}await document.startViewTransition(()=>{this.draggables.forEach(({parent:p,index:f},g)=>{a(g,p,f)})}).finished}}return l([d({type:String,attribute:"response-identifier"})],i.prototype,"responseIdentifier",2),l([d({attribute:!1,type:Object})],i.prototype,"configuration",2),l([d({type:Boolean,reflect:!0})],i.prototype,"disabled",2),l([d({type:Boolean,reflect:!0})],i.prototype,"readonly",2),l([d({type:Number,reflect:!0,attribute:"min-associations"})],i.prototype,"minAssociations",2),l([d({type:Number,reflect:!0,attribute:"max-associations"})],i.prototype,"maxAssociations",2),l([Mi(t)],i.prototype,"handleDraggablesChange",1),i};var Ii=b`
251
- :host {
252
- display: block; /* necessary to calculate scaling position */
253
- }
254
- slot[name='qti-simple-associable-choice'] {
255
- display: flex;
256
- flex-wrap: wrap;
257
- gap: 0.5rem;
258
- }
259
-
260
- :host::part(associables-container) {
261
- display: flex;
262
- justify-content: space-between;
263
- background: linear-gradient(
264
- 180deg,
265
- rgb(0 0 0 / 0%) calc(50% - 1px),
266
- var(--qti-border-color-gray) calc(50%),
267
- rgb(0 0 0 / 0%) calc(50% + 1px)
268
- );
269
- }
270
- `;var Le=class extends Y(u,"qti-simple-associable-choice",!0,".dl"){constructor(){super();this._childrenMap=[];this.addEventListener("register-qti-simple-associable-choice",e=>{let r=e.target;this._childrenMap.push(r)})}render(){return h` <slot name="prompt"></slot>
271
- <slot name="qti-simple-associable-choice"></slot>
272
- <div part="drop-container">
273
- ${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,r)=>h`<div part="associables-container">
274
- <div name="left${r}" part="drop-list" class="dl" identifier="droplist${r}_left"></div>
275
- <div name="right${r}" part="drop-list" class="dl" identifier="droplist${r}_right"></div>
276
- </div>`)}
277
- </div>`}};Le.styles=Ii,l([q()],Le.prototype,"_childrenMap",2),Le=l([m("qti-associate-interaction")],Le);var W=class extends T{constructor(){super();this._errorMessage=null;this.handlePostMessage=this.handlePostMessage.bind(this)}connectedCallback(){super.connectedCallback();let e=this.data.startsWith("http")?this.data:Ge(this.baseItemUrl+"/"+this.data);fetch(e).then(r=>r.json()).then(r=>{this.manifest=r,this.setupCES()}).catch(r=>{this._errorMessage=r})}setupCES(){let e=this.shadowRoot.querySelector("#pciContainer"),r=e.contentWindow||e,i=e.contentDocument;window.addEventListener("message",this.handlePostMessage),i.open(),i.write(`
278
- <html>
279
- <head>
280
- <link href='${Ge(`${this.baseRefUrl}/${this.manifest.style[0]}`)}' rel="stylesheet" />
281
- <script src='${Ge(`${this.baseRefUrl}/${this.manifest.script[0]}`)}'></script>
282
- </head>
283
- <body></body>
284
- </html>
285
- `),i.close()}getIFrames(){let e=this.shadowRoot.querySelectorAll("iframe"),r=this.querySelectorAll("iframe"),i=[...e,...r];for(let o of i){let n=o.src;if(new URL(n,window.location.href).origin===window.location.origin)try{let c=o.contentDocument||o.contentWindow.document;c&&this.getInnerIFrames(c,i)}catch(c){console.error("Error accessing nested iframe:",c)}}return i.forEach((o,n)=>{i.indexOf(o)!==n&&i.splice(n,1)}),i}getInnerIFrames(e,r=[]){return e.querySelectorAll("iframe").forEach(o=>{r.push(o);let n=o.src;if(new URL(n,window.location.href).origin===window.location.origin)try{let c=o.contentDocument||o.contentWindow.document;this.getInnerIFrames(c,r)}catch(c){console.error("Error accessing nested iframe:",c)}else console.warn("Skipped cross-origin iframe:",n)}),r}postToWindowAndIframes(e,r){window.postMessage({type:e,data:r},"*");let i=this.getIFrames();for(let o of i)o.contentWindow&&o.contentWindow.postMessage({type:e,data:r},"*")}handlePostMessage(e){let{type:r,data:i}=e.data;switch(r){case"setResponse":this.rawResponse=i,this.saveResponse(i);break;case"getResponse":{this.postToWindowAndIframes("responseData",this.rawResponse);break}case"getMedia":{let o=this.manifest.media.map(n=>n.startsWith("http")?n:Ge(this.baseRefUrl+"/"+n));this.postToWindowAndIframes("mediaData",o);break}case"setStageHeight":console.log("setStageHeight not implemented");break}}validate(){return this.rawResponse!==""}set response(e){this.rawResponse=e}disconnectedCallback(){window.removeEventListener("message",this.handlePostMessage),super.disconnectedCallback()}render(){return h`<iframe
286
- width=${this.getAttribute("width")}
287
- height=${this.getAttribute("height")}
288
- frameborder="0"
289
- title="pciContainer"
290
- id="pciContainer"
291
- >
292
- </iframe>
293
- ${this._errorMessage&&h`<div style="color:red">
294
- <h1>Error</h1>
295
- ${this._errorMessage}
296
- </div>`}`}};l([d({type:String,attribute:"response-identifier"})],W.prototype,"responseIdentifier",2),l([d({type:String,attribute:"data"})],W.prototype,"data",2),l([d({type:String,attribute:"data-base-item"})],W.prototype,"baseItemUrl",2),l([d({type:String,attribute:"data-base-ref"})],W.prototype,"baseRefUrl",2),l([d({type:String,attribute:"id"})],W.prototype,"id",2),l([q()],W.prototype,"_errorMessage",2),W=l([m("qti-custom-interaction")],W);var $e=class extends T{constructor(){super(...arguments);this.countAttempt="true"}validate(){return!0}set response(e){}render(){return h`<button ?disabled=${this.disabled} part="button" @click=${this.endAttempt}>${this.title}</button>`}endAttempt(e){this.dispatchEvent(new CustomEvent("end-attempt",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,countAttempt:this.countAttempt==="true"}}))}};l([d({type:String,attribute:"count-attempt"})],$e.prototype,"countAttempt",2),l([d({type:String})],$e.prototype,"title",2),$e=l([m("qti-end-attempt-interaction")],$e);var lt=class extends Y(u,"qti-gap-text",!1,"qti-gap"){render(){return h`<slot name="prompt"> </slot><slot part="drags" name="qti-gap-text"></slot> <slot part="drops"></slot>`}set correctResponse(t){let e=[],r=Array.isArray(t)?t:[t];r&&(e=r.map(o=>{let n=o.split(" ");return{text:n[0],gap:n[1]}})),this.querySelectorAll("qti-gap").forEach((o,n)=>{var f,g,y,v;let a=o.getAttribute("identifier"),c=(f=e.find(w=>w.gap===a))==null?void 0:f.text,p=(g=this.querySelector(`qti-gap-text[identifier="${c}"]`))==null?void 0:g.textContent.trim();if(c&&p){if(!((y=o.nextElementSibling)!=null&&y.classList.contains("correct-option"))){let w=document.createElement("span");w.classList.add("correct-option"),w.textContent=p,o.insertAdjacentElement("afterend",w)}}else(v=o.nextElementSibling)!=null&&v.classList.contains("correct-option")&&o.nextElementSibling.remove()})}};lt.styles=[b`
297
- :host {
298
- display: flex;
299
- align-items: flex-start;
300
- flex-direction: column;
301
- gap: 0.5rem;
302
- }
303
-
304
- :host(.qti-choices-top) {
305
- flex-direction: column;
306
- }
307
- :host(.qti-choices-bottom) {
308
- flex-direction: column-reverse;
309
- }
310
- :host(.qti-choices-left) {
311
- flex-direction: row;
312
- }
313
- :host(.qti-choices-right) {
314
- flex-direction: row-reverse;
315
- }
316
- /* [part='drops'] , */
317
- [part='drags'] {
318
- display: flex;
319
- align-items: flex-start;
320
- flex: 1;
321
- gap: 0.5rem;
322
- }
323
- `],lt=l([m("qti-gap-match-interaction")],lt);var Oi=(s,t,e)=>{let r=new Map;for(let i=t;i<=e;i++)r.set(s[i],i);return r},Kt=te(class extends B{constructor(s){if(super(s),s.type!==ae.CHILD)throw Error("repeat() can only be used in text expressions")}dt(s,t,e){let r;e===void 0?e=t:t!==void 0&&(r=t);let i=[],o=[],n=0;for(let a of s)i[n]=r?r(a,n):n,o[n]=e(a,n),n++;return{values:o,keys:i}}render(s,t,e){return this.dt(s,t,e).values}update(s,[t,e,r]){var k;let i=_i(s),{values:o,keys:n}=this.dt(t,e,r);if(!Array.isArray(i))return this.ut=n,o;let a=(k=this.ut)!=null?k:this.ut=[],c=[],p,f,g=0,y=i.length-1,v=0,w=o.length-1;for(;g<=y&&v<=w;)if(i[g]===null)g++;else if(i[y]===null)y--;else if(a[g]===n[v])c[v]=ne(i[g],o[v]),g++,v++;else if(a[y]===n[w])c[w]=ne(i[y],o[w]),y--,w--;else if(a[g]===n[w])c[w]=ne(i[g],o[w]),Se(s,c[w+1],i[g]),g++,w--;else if(a[y]===n[v])c[v]=ne(i[y],o[v]),Se(s,i[g],i[y]),y--,v++;else if(p===void 0&&(p=Oi(n,v,w),f=Oi(a,g,y)),p.has(a[g]))if(p.has(a[y])){let A=f.get(n[v]),we=A!==void 0?i[A]:null;if(we===null){let vt=Se(s,i[g]);ne(vt,o[v]),c[v]=vt}else c[v]=ne(we,o[v]),Se(s,i[g],we),i[A]=null;v++}else Ht(i[y]),y--;else Ht(i[g]),g++;for(;v<=w;){let A=Se(s,c[w+1]);ne(A,o[v]),c[v++]=A}for(;g<=y;){let A=i[g++];A!==null&&Ht(A)}return this.ut=n,Ai(s,c),M}});function De(s,t,e,r){switch(s){case"circle":{let[i,o,n]=t,a=i/e.width*100,c=o/e.height*100,p=n/e.width*100;r.style.left=a-p+"%",r.style.top=c-p+"%",r.style.width=r.style.height=4*p+"px",r.style.borderRadius="9999px"}break;case"rect":{let[i,o,n,a]=t,c=i/e.width*100,p=o/e.height*100,f=n/e.width*100,g=a/e.height*100;r.style.left=c+"%",r.style.top=p+"%",r.style.width=f-c+"%",r.style.height=g-p+"%"}break;case"poly":{let i=t.reduce((k,A,we,vt)=>{if(we%2===1){let Xi=k.pop();k[k.length]={x:Xi,y:vt[we]}}else k.push(A);return k},[]),o=Math.min(...i.map(k=>k.x)),n=Math.max(...i.map(k=>k.x)),a=Math.min(...i.map(k=>k.y)),c=Math.max(...i.map(k=>k.y)),p=o/e.width*100,f=a/e.height*100,g=n/e.width*100,y=c/e.height*100;r.style.left=o/e.width*100+"%",r.style.top=a/e.height*100+"%",r.style.width=g-p+"%",r.style.height=y-f+"%";let w=i.map(k=>({x:(k.x-o)/(n-o)*100,y:(k.y-a)/(c-a)*100})).map(k=>Math.round(k.x)+"% "+Math.round(k.y)+"%").join(",");r.style.clipPath=`polygon(${w})`}break;default:break}}var K=class extends T{constructor(){super();this.startPoint=null;this.endPoint=null;this._lines=[];this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}reset(){this._lines=[]}validate(){return this._lines.length>0}set response(e){Array.isArray(e)&&(this._lines=e)}render(){var e,r,i,o;return h`<slot name="prompt"></slot>
324
- <line-container>
325
- <svg
326
- width=${F((e=this.grImage[0])==null?void 0:e.width)}
327
- height=${F((r=this.grImage[0])==null?void 0:r.height)}
328
- viewbox="0 0 ${(i=this.grImage[0])==null?void 0:i.width} ${(o=this.grImage[0])==null?void 0:o.height}"
329
- >
330
- ${Kt(this._lines,n=>n,(n,a)=>dr`
331
- <line
332
- part="line"
333
- x1=${parseInt(this.querySelector("[identifier="+n.split(" ")[0]+"]").style.left)}
334
- y1=${parseInt(this.querySelector("[identifier="+n.split(" ")[0]+"]").style.top)}
335
- x2=${parseInt(this.querySelector("[identifier="+n.split(" ")[1]+"]").style.left)}
336
- y2=${parseInt(this.querySelector("[identifier="+n.split(" ")[1]+"]").style.top)}
337
- stroke="red"
338
- stroke-width="3"
339
- @click=${c=>{c.stopPropagation(),this._lines=this._lines.filter((p,f)=>f!==a),this.saveResponse(this._lines)}}
340
- />
341
- `)}
342
- ${this.startPoint&&dr`<line
343
- part="point"
344
- x1=${this.startCoord.x}
345
- y1=${this.startCoord.y}
346
- x2=${this.mouseCoord.x}
347
- y2=${this.mouseCoord.y}
348
- stroke="red"
349
- stroke-width="3"
350
- />`}
351
- </svg>
352
- <slot></slot>
353
- </line-container>`}positionHotspotOnRegister(e){let r=this.querySelector("img"),i=e.target,o=i.getAttribute("coords"),n=i.getAttribute("shape"),a=o.split(",").map(c=>parseInt(c));De(n,a,r,i)}firstUpdated(e){super.firstUpdated(e),this.hotspots=this.querySelectorAll("qti-associable-hotspot"),document.addEventListener("mousemove",r=>{this.mouseCoord={x:r.clientX-this.grImage[0].getBoundingClientRect().left,y:r.clientY-this.grImage[0].getBoundingClientRect().top}}),this.hotspots.forEach(r=>{r.style.left=r.getAttribute("coords").split(",")[0]+"px",r.style.top=r.getAttribute("coords").split(",")[1]+"px",r.addEventListener("click",i=>{this.startPoint?this.endPoint||(this.endPoint=i.target,this._lines=[...this._lines,this.startPoint.getAttribute("identifier")+" "+this.endPoint.getAttribute("identifier")],this.saveResponse(this._lines),this.startPoint=null,this.endPoint=null):(this.startPoint=i.target,this.startCoord={x:this.startPoint.getAttribute("coords").split(",")[0],y:this.startPoint.getAttribute("coords").split(",")[1]})})})}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};K.styles=[b`
354
- slot:not([name='prompt']) {
355
- // position: relative; /* qti-hotspot-choice relative to the slot */
356
- display: block;
357
- width: fit-content; /* hotspots not stretching further if image is at max size */
358
- }
359
- ::slotted(img) {
360
- /* image not selectable anymore */
361
- pointer-events: none;
362
- user-select: none;
363
- }
364
- ::slotted(qti-associable-hotspot) {
365
- transform: translate(-50%, -50%);
366
- }
367
- line-container {
368
- display: block;
369
- position: relative;
370
- }
371
- svg {
372
- position: absolute;
373
- top: 0px;
374
- left: 0px;
375
- }
376
- `],l([q()],K.prototype,"_lines",2),l([q()],K.prototype,"startCoord",2),l([q()],K.prototype,"mouseCoord",2),l([Ke("svg")],K.prototype,"svgContainer",2),l([qi({selector:"img"})],K.prototype,"grImage",2),K=l([m("qti-graphic-associate-interaction")],K);var ct=class extends Y(u,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return h` <slot name="prompt"></slot>
377
- <slot></slot>
378
- <slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,i=r.getAttribute("coords"),o=r.getAttribute("shape"),n=i.split(",").map(a=>parseInt(a));switch(o){case"circle":{let[a,c,p]=n;r.style.left=a-p+"px",r.style.top=c-p+"px",r.style.width=r.style.height=2*p+"px"}break;case"rect":{let[a,c,p,f]=n;r.style.left=a+"px",r.style.top=c+"px",r.style.width=p-a+"px",r.style.height=f-c+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};ct.styles=b`
379
- :host {
380
- display: inline-block;
381
- position: relative;
382
- }
383
- slot[name='qti-gap-img'] {
384
- display: flex;
385
- gap: 1rem;
386
- }
387
- `,ct=l([m("qti-graphic-gap-match-interaction")],ct);var dt=class extends le(u,"qti-hotspot-choice"){render(){return h`
388
- <slot name="prompt"></slot>
389
- <!-- slot for the prompt -->
390
- <slot></slot>
391
- <!-- slot for the image and hotspots -->
392
- `}setHotspotOrder(t){let{identifier:e}=t.detail,r=this._choiceElements.find(o=>o.getAttribute("identifier")===e),i=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(o=>o.order>0).length>=i){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(o=>!!o.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(o=>(o.order>o.order&&o.order--,o)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,i=r.getAttribute("coords"),o=r.getAttribute("shape"),n=i.split(",").map(a=>parseInt(a));De(o,n,e,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("activate-qti-hotspot-choice",this.setHotspotOrder),this.addEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("activate-qti-hotspot-choice",this.setHotspotOrder),this.removeEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}};dt.styles=[b`
393
- slot:not([name='prompt']) {
394
- position: relative; /* qti-hotspot-choice relative to the slot */
395
- display: block;
396
- width: fit-content; /* hotspots not stretching further if image is at max size */
397
- }
398
- ::slotted(img) {
399
- /* image not selectable anymore */
400
- pointer-events: none;
401
- user-select: none;
402
- }
403
- `],dt=l([m("qti-graphic-order-interaction")],dt);var pt=class extends le(u,"qti-hotspot-choice"){render(){return h`
404
- <slot name="prompt"></slot>
405
- <!-- slot for the prompt -->
406
- <slot></slot>
407
- <!-- slot for the image and hotspots -->
408
- `}positionHotspotOnRegister(t){let e=this.querySelector("img"),r=t.target,i=r.getAttribute("coords"),o=r.getAttribute("shape"),n=i.split(",").map(a=>parseInt(a));De(o,n,e,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("register-qti-hotspot-choice",this.positionHotspotOnRegister)}};pt.styles=[b`
409
- slot:not([name='prompt']) {
410
- position: relative; /* qti-hotspot-choice relative to the slot */
411
- display: block;
412
- width: fit-content; /* hotspots not stretching further if image is at max size */
413
- }
414
- ::slotted(img) {
415
- /* image not selectable anymore */
416
- pointer-events: none;
417
- user-select: none;
418
- /* width:100%; */
419
- }
420
- `],pt=l([m("qti-hotspot-interaction")],pt);var he=class extends O(u,"qti-simple-associable-choice"){constructor(){super(...arguments);this.matchMin=0;this.matchMax=1;this.fixed=!1}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return h`
421
- <slot part="slot"></slot>
422
- <slot part="dropslot" name="qti-simple-associable-choice"></slot>
423
- `}};he.styles=b`
424
- :host {
425
- display: flex;
426
- user-select: none;
427
- }
428
- slot {
429
- width: 100%;
430
- display: block;
431
- }
432
- slot[name='qti-simple-associable-choice'] {
433
- width: 100%;
434
- }
435
- `,l([d({type:Number,attribute:"match-min"})],he.prototype,"matchMin",2),l([d({type:Number,attribute:"match-max"})],he.prototype,"matchMax",2),l([d({type:Boolean,attribute:"fixed"})],he.prototype,"fixed",2),he=l([m("qti-simple-associable-choice")],he);var Ui=b`
436
- slot {
437
- /* slot where the */
438
- display: flex;
439
- flex-direction: column;
440
- gap: 0.5rem;
441
- align-items: flex-start; /* prevents the drag and drop container slots having the same height */
442
- }
443
- :host(.qti-choices-top) slot {
444
- flex-direction: column;
445
- }
446
- :host(.qti-choices-bottom) slot {
447
- flex-direction: column-reverse;
448
- }
449
- :host(.qti-choices-left) slot {
450
- flex-direction: row;
451
- }
452
- :host(.qti-choices-right) slot {
453
- flex-direction: row-reverse;
454
- }
455
- slot[name='prompt'] {
456
- display: block;
457
- }
458
- ::slotted(qti-simple-match-set) {
459
- /* Make sure the drag and drop container slots have the same width */
460
- flex: 1;
461
- }
462
- `;var me=class extends Y(u,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){constructor(){super(...arguments);this.lastCheckedRadio=null;this._response=[];this.correctOptions=[];this.responseIdentifier="";this.handleRadioClick=e=>{let r=e.target;this.lastCheckedRadio===r?(r.checked=!1,this.lastCheckedRadio=null,this.handleRadioChange(e)):this.lastCheckedRadio=r};this.handleRadioChange=e=>{let r=e.target,i=r.value,o=r.name,n=r.type;r.checked?(this.response?this.response.indexOf(i)===-1&&(n==="radio"&&(this.response=this.response.filter(a=>a.indexOf(o)===-1)),this.response=[...this.response,i]):this.response=[i],this.lastCheckedRadio=r):(this.response=this.response.filter(a=>a!==i),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}}))}}get response(){return this.classList.contains("qti-match-tabular")?this._response:super.response}set response(e){this.classList.contains("qti-match-tabular")?this._response=e:super.response=e}async connectedCallback(){super.connectedCallback(),this.rows=Array.from(this.querySelectorAll("qti-simple-match-set:first-of-type qti-simple-associable-choice")),this.cols=Array.from(this.querySelectorAll("qti-simple-match-set:last-of-type qti-simple-associable-choice")),this.response=[]}set correctResponse(e){if(e===""){this.correctOptions=[];return}else Array.isArray(e)&&(this.correctOptions=e)}render(){return this.classList.contains("qti-match-tabular")?h`
463
- <slot name="prompt"></slot>
464
- <table>
465
- <tr>
466
- <td></td>
467
- ${this.cols.map((e,r)=>h`<th part="r-header">${ce(e.innerHTML)}</th>`)}
468
- </tr>
469
-
470
- ${this.rows.map((e,r)=>h`<tr>
471
- <td part="c-header">${ce(e.innerHTML)}</td>
472
- ${this.cols.map((i,o)=>{let n=e.getAttribute("identifier"),a=i.getAttribute("identifier"),c=`${n} ${a}`,p=this.response.filter(v=>v.split(" ")[0]===n).length||0,f=this.response.includes(c),g=`rb ${f?"rb-checked":""} ${this.correctOptions.includes(c)?"rb-correct":""}`,y=this.correctOptions.length>0?!0:e.matchMax===1?!1:p>=e.matchMax&&!f;return h`<td>
473
- <input
474
- type=${e.matchMax===1?"radio":"checkbox"}
475
- part=${g}
476
- name=${n}
477
- value=${c}
478
- .disabled=${y}
479
- @change=${v=>this.handleRadioChange(v)}
480
- @click=${v=>e.matchMax===1?this.handleRadioClick(v):null}
481
- />
482
- </td>`})}
483
- </tr>`)}
484
- </table>
485
- `:h`<slot name="prompt"></slot> <slot></slot>`}};me.styles=Ui,l([q()],me.prototype,"_response",2),l([q()],me.prototype,"correctOptions",2),l([d({type:String,attribute:"response-identifier"})],me.prototype,"responseIdentifier",2),me=l([m("qti-match-interaction")],me);var ht=class extends T{constructor(){super();this.value=0}reset(){}validate(){return!0}set response(e){}static get properties(){return _(C({},T.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return h` <slot name="prompt"></slot>
486
- <slot></slot>`}connectedCallback(){super.connectedCallback();let e=this.querySelector("audio")||this.querySelector("video")||this.querySelector("object");e&&e.addEventListener("ended",()=>{this.value++,this.saveResponse(this.value.toString())})}};ht.styles=[b``],ht=l([m("qti-media-interaction")],ht);var re=class extends Ot(Y(u,"qti-simple-choice",!0,"drop-list"),"qti-simple-choice"){constructor(){super(...arguments);this.nrChoices=0;this.correctResponses=[];this.showCorrectResponses=!1}render(){let e=Array.from(this.querySelectorAll("qti-simple-choice"));return this.nrChoices<e.length&&(this.nrChoices=e.length),h` <slot name="prompt"> </slot>
487
- <div part="container">
488
- <slot part="drags"> </slot>
489
- <div part="drops">
490
- ${Array.from(Array(this.nrChoices)).map((r,i)=>h`<drop-list part="drop-list" identifier="droplist${i}"></drop-list>${this.showCorrectResponses&&this.correctResponses.length>i?ce(`<span part='correct-response'>${this.correctResponses[i]}</span>`):""}`)}
491
- </div>
492
- </div>`}set correctResponse(e){if(e===""){this.showCorrectResponses=!1;return}this.correctResponses.length===0&&(Array.isArray(e)?e:[e]).forEach((i,o)=>{let n=this.querySelector(`qti-simple-choice[identifier="${i}"]`);n||(n=this.shadowRoot.querySelector(`qti-simple-choice[identifier="${i}"]`));let a=n==null?void 0:n.textContent.trim();this.correctResponses=[...this.correctResponses,a]}),this.showCorrectResponses=!0}getResponse(){return Array.from(this.shadowRoot.querySelectorAll("drop-list")).map(i=>{let o=i.querySelectorAll('[qti-draggable="true"]');return[...Array.from(o).map(a=>a.getAttribute("identifier"))].join(" ")})}async firstUpdated(e){super.firstUpdated(e),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(r=>r.setAttribute("part","qti-simple-choice"))}};re.styles=[b`
493
- [part='drags'] {
494
- display: flex;
495
- align-items: flex-start;
496
- flex: 1;
497
- }
498
-
499
- [part='drops'] {
500
- flex: 1;
501
- display: grid;
502
- grid-auto-flow: column;
503
- grid-auto-columns: 1fr;
504
- }
505
-
506
- :host([orientation='horizontal']) [part='drags'] {
507
- flex-direction: row;
508
- }
509
- :host([orientation='horizontal']) [part='drops'] {
510
- grid-auto-flow: column;
511
- }
512
- :host([orientation='vertical']) [part='drags'] {
513
- flex-direction: column;
514
- }
515
- :host([orientation='vertical']) [part='drops'] {
516
- grid-auto-flow: row;
517
- }
518
-
519
- [part='drop-list'] {
520
- display: block;
521
- flex: 1;
522
- }
523
-
524
- [part='container'] {
525
- display: flex;
526
- gap: 0.5rem;
527
- }
528
- :host(.qti-choices-top) [part='container'] {
529
- flex-direction: column;
530
- }
531
- :host(.qti-choices-bottom) [part='container'] {
532
- flex-direction: column-reverse;
533
- }
534
- :host(.qti-choices-left) [part='container'] {
535
- flex-direction: row;
536
- }
537
- :host(.qti-choices-right) [part='container'] {
538
- flex-direction: row-reverse;
539
- }
540
- `],l([q()],re.prototype,"nrChoices",2),l([q()],re.prototype,"correctResponses",2),l([q()],re.prototype,"showCorrectResponses",2),l([d({type:String})],re.prototype,"orientation",2),re=l([m("qti-order-interaction")],re);var Zt=class extends u{render(){return h`<slot></slot>`}};Zt.styles=[b`
541
- :host {
542
- display: block;
543
- }
544
- ::slotted(img) {
545
- position: absolute;
546
- cursor: move;
547
- user-select: none;
548
- left: 50%;
549
- transform: translateX(-50%);
550
- }
551
- `];customElements.define("qti-position-object-interaction",Zt);var mt=class extends u{render(){return h`<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(t){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};mt.styles=[b`
552
- :host {
553
- display: inline-block;
554
- position: relative;
555
- }
556
- `],mt=l([m("qti-position-object-stage")],mt);var zi="important",As=" !"+zi,Fi=te(class extends B{constructor(s){var t;if(super(s),s.type!==ae.ATTRIBUTE||s.name!=="style"||((t=s.strings)==null?void 0:t.length)>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(s){return Object.keys(s).reduce((t,e)=>{let r=s[e];return r==null?t:t+`${e=e.includes("-")?e:e.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${r};`},"")}update(s,[t]){let{style:e}=s.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(As);r.includes("-")||o?e.setProperty(r,o?i.slice(0,-11):i,o?zi:""):e[r]=i}}return M}});var ue=class extends T{constructor(){super(...arguments);this.maxChoices=1/0;this.minChoices=0;this._points=[];this._imgElement=null;this._onImageClick=e=>{if(this._points.length<this.maxChoices){let r=e.offsetX,i=e.offsetY;this._points=[...this._points,`${r} ${i}`],this.saveResponse(this._points)}}}render(){return h` <slot name="prompt"></slot>
557
- <point-container>
558
- ${Kt(this._points,e=>e,(e,r)=>h`
559
- <button
560
- part="point"
561
- style=${Fi({position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
562
- aria-label="Remove point at ${e}"
563
- @click=${i=>{i.stopPropagation(),this._points=this._points.filter((o,n)=>n!==r),this.saveResponse(this._points)}}
564
- ></button>
565
- `)}
566
- <slot></slot>
567
- </point-container>`}reset(){this._points=[]}validate(){return this._points.length>=this.minChoices&&this._points.length<=this.maxChoices}set response(e){this._points=Array.isArray(e)?e:[e]}firstUpdated(){this._imgElement=this.querySelector("img"),this._imgElement?this._imgElement.addEventListener("click",this._onImageClick):console.warn("No <img> element found in <qti-select-point-interaction>")}disconnectedCallback(){super.disconnectedCallback(),this._imgElement&&this._imgElement.removeEventListener("click",this._onImageClick)}};ue.styles=[b`
568
- :host {
569
- display: block;
570
- }
571
- point-container {
572
- display: block;
573
- position: relative;
574
- }
575
- `],l([d({type:Number,attribute:"max-choices"})],ue.prototype,"maxChoices",2),l([d({type:Number,attribute:"min-choices"})],ue.prototype,"minChoices",2),l([q()],ue.prototype,"_points",2),ue=l([m("qti-select-point-interaction")],ue);var R=class extends T{constructor(){super();this.stepLabel=!1;this.reverse=!1;this._handleDisabledChange=(e,r)=>{};this._handleReadonlyChange=(e,r)=>{};this.csLive=getComputedStyle(this)}set min(e){this._min=e,this.value=e,this.style.setProperty("--min",`${this._min}`)}get min(){return this._min}set max(e){this._max=e,this.style.setProperty("--max",`${this._max}`)}get max(){return this._max}set step(e){this._step=e,this.style.setProperty("--step",`${this._step}`)}get step(){return this._step}reset(){}validate(){return!0}set response(e){if(Array.isArray(e)){console.error("QtiSliderInteraction: response is an array, but should be a single value");return}let r=parseInt(e);if(Number.isNaN(r)){console.error("QtiSliderInteraction: response is not a number");return}this.value=r}render(){this.value<this.min&&(this.value=this.min),this.value>this.max&&(this.value=this.max);let e=(this.value-this.min)/(this.max-this.min)*100;return this.style.setProperty("--value-percentage",`${e}%`),this.setAttribute("aria-valuenow",this.value.toString()),h`<slot name="prompt"></slot>
576
- <div id="slider" part="slider">
577
- ${this.csLive.getPropertyValue("--show-bounds")=="true"?h`<div id="bounds" part="bounds">
578
- <div>${this._min}</div>
579
- <div>${this._max}</div>
580
- </div>`:E}
581
- ${this.csLive.getPropertyValue("--show-ticks")=="true"?h`<div id="ticks" part="ticks"></div>`:E}
582
- <div id="rail" part="rail" @mousedown=${this._onMouseDown} @touchstart=${this._onTouchMove}>
583
- <div id="knob" part="knob">
584
- ${this.csLive.getPropertyValue("--show-value")=="true"?h`<div id="value" part="value">${this.value}</div>`:E}
585
- </div>
586
- </div>
587
- </div>`}connectedCallback(){super.connectedCallback(),this.step=1,this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}_onTouchMove(e){let r=a=>{let{x:c}=this.getPositionFromEvent(a),p=c-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(p),a.stopPropagation()},i=()=>{document.removeEventListener("touchmove",r),document.removeEventListener("touchend",i),this.saveResponse(this.value.toString())};document.addEventListener("touchmove",r),document.addEventListener("touchend",i);let{x:o}=this.getPositionFromEvent(e),n=o-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(n),e.stopPropagation()}_onMouseDown(e){let r=n=>{let a=n.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(a),n.preventDefault(),n.stopPropagation()},i=()=>{document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",i),this.saveResponse(this.value.toString())};document.addEventListener("mousemove",r),document.addEventListener("mouseup",i);let o=e.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(o),e.preventDefault(),e.stopPropagation()}calculateValue(e){let r=this.min+(this.max-this.min)*e/this._rail.getBoundingClientRect().width,i=this.min+Math.round((r-this.min)/this._step)*this._step;this.value=i}getPositionFromEvent(e){let r;if(e.type=="touchstart"||e.type=="touchmove"||e.type=="touchend"||e.type=="touchcancel"){let i=typeof e.originalEvent=="undefined"?e:e.originalEvent,o=i.touches[0]||i.changedTouches[0];r={x:o.pageX,y:o.pageY}}else(e.type=="mousedown"||e.type=="mouseup"||e.type=="mousemove"||e.type=="mouseover"||e.type=="mouseout"||e.type=="mouseenter"||e.type=="mouseleave")&&(r={x:e.clientX,y:e.clientY});return r}};R.styles=[b``],l([Ke("#knob")],R.prototype,"_knob",2),l([Ke("#rail")],R.prototype,"_rail",2),l([d({type:Number})],R.prototype,"value",2),l([d({type:Boolean,attribute:"step-label"})],R.prototype,"stepLabel",2),l([d({type:Boolean})],R.prototype,"reverse",2),l([d({type:Number,attribute:"lower-bound"})],R.prototype,"min",1),l([d({type:Number,attribute:"upper-bound"})],R.prototype,"max",1),l([d({type:Number,attribute:"step"})],R.prototype,"step",1),l([S("disabled",{waitUntilFirstUpdate:!0})],R.prototype,"_handleDisabledChange",2),l([S("readonly",{waitUntilFirstUpdate:!0})],R.prototype,"_handleReadonlyChange",2),R=l([m("qti-slider-interaction")],R);var ut=class extends u{render(){return h`<slot @slotchange=${this.handleSlotChange}></slot>`}handleSlotChange(t){var r,i,o;let e=Array.from((i=(r=this.firstElementChild)==null?void 0:r.childNodes)!=null?i:[]).find(n=>n.nodeType===Node.COMMENT_NODE);try{this.operatorFunction=new Function("context","fn","item",(o=e.textContent)!=null?o:"")}catch(n){console.error("custom-operator contains invalid javascript code",n)}}calculate(){let t={variable:r=>{var i,o,n;return(n=(o=(i=this._context)==null?void 0:i.variables.find(a=>a.identifier===r))==null?void 0:o.value)!=null?n:""},correct:r=>{var i,o,n;return(n=(o=(i=this._context)==null?void 0:i.variables.find(a=>a.identifier===r))==null?void 0:o.correctResponse)!=null?n:""}},e={getVariable:r=>{var i;return(i=this._context)==null?void 0:i.variables.find(o=>o.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.operatorFunction(this._context,t,e)}};l([J({context:I,subscribe:!0}),q()],ut.prototype,"_context",2),ut=l([m("qti-custom-operator")],ut);var gt=class extends u{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return h` <slot name="qti-gap-img"></slot> `}};gt.styles=b`
588
- :host {
589
- display: flex;
590
- user-select: none;
591
- position: absolute;
592
- }
593
- `,gt=l([m("qti-associable-hotspot")],gt);var He=class extends u{constructor(){super(...arguments);this.tabindex=0}render(){return h` <slot name="qti-gap-text"></slot>`}};He.styles=b`
594
- :host {
595
- display: flex;
596
- user-select: none;
597
- }
598
- `,l([d({type:Number,reflect:!0})],He.prototype,"tabindex",2),He=l([m("qti-gap")],He);var Pe=class extends u{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};Pe.styles=b`
599
- :host {
600
- display: flex;
601
- user-select: none;
602
- }
603
- `,l([d({type:Number,reflect:!0})],Pe.prototype,"tabindex",2),Pe=l([m("qti-gap-img")],Pe);var Ne=class extends O(u,"qti-gap-text"){constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return h`<slot></slot>`}};Ne.styles=b`
604
- :host {
605
- display: inline-flex;
606
- user-select: none;
607
- }
608
- `,l([d({type:Number,reflect:!0})],Ne.prototype,"tabindex",2),Ne=l([m("qti-gap-text")],Ne);var Ve=class extends O(u,"qti-hotspot-choice"){};Ve.styles=b`
609
- :host {
610
- display: flex;
611
- user-select: none;
612
- position: absolute;
613
- }
614
- `,l([d({attribute:"aria-ordervalue",type:Number,reflect:!0})],Ve.prototype,"order",2),Ve=l([m("qti-hotspot-choice")],Ve);var ft=class extends O(u,"qti-hottext"){render(){return h`<div part="ch"><div part="cha"></div></div>
615
- <slot></slot> `}};ft.styles=b`
616
- :host {
617
- display: flex;
618
- user-select: none;
619
- }
620
- `,ft=l([m("qti-hottext")],ft);var bt=class extends u{static get styles(){return[b`
621
- :host {
622
- display: block;
623
- cursor: pointer;
624
- }
625
- `]}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._onSelectInlineChoice),this.dispatchEvent(new CustomEvent("qti-inline-choice-register",{bubbles:!0,cancelable:!1,composed:!0}))}disconnectedCallback(){this.removeEventListener("click",this._onSelectInlineChoice)}render(){return h` <slot></slot> `}_onSelectInlineChoice(){this.dispatchEvent(new CustomEvent("qti-inline-choice-select",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier}}))}};l([d({type:String})],bt.prototype,"identifier",2),bt=l([m("qti-inline-choice")],bt);var Ie=class extends O(u,"qti-simple-choice"){render(){return h`<div part="ch">
626
- <div part="cha"></div>
627
- </div>
628
- ${this.marker?h`<div id="label">${this.marker}</div>`:E}
629
- <slot part="slot"></slot> `}};Ie.styles=b`
630
- :host {
631
- display: flex;
632
- user-select: none;
633
- }
634
- slot {
635
- width: 100%;
636
- display: flex;
637
- align-items: center;
638
- }
639
- [part='ch'] {
640
- display: flex;
641
- flex-shrink: 0;
642
- align-items: center;
643
- justify-content: center;
644
- }
645
- `,l([d({type:String,attribute:!1})],Ie.prototype,"marker",2),Ie=l([m("qti-simple-choice")],Ie);console.log("%cC\xBFTO%cLab%c: qti-components loaded","font-weight:bold; color:green",'font-family: "PT Sans", font-weight:bold; color:green; font-size: smaller;vertical-align: sub',"font-weight:unset");var Bi=`@layer qti-base, qti-components, qti-utilities, qti-variants, qti-extended;
646
-
647
- /*
648
- Base variables on PNP
649
- https://www.imsglobal.org/spec/qti/v3p0/impl#h.x51afjl5r8gl
650
- font-face
651
- https://www.imsglobal.org/spec/qti/v3p0/impl#h.r3hufj74r1do
652
- line-spacing
653
- https://www.imsglobal.org/spec/qti/v3p0/impl#h.e0onr51nghyl
654
- */
655
-
656
- :root,
657
- :host {
658
- /* Primary colors */
659
- --qti-primary-light: #ffeaea;
660
- --qti-primary: #f86d70;
661
- --qti-primary-dark: #a1616a;
662
-
663
- /* Secondary colors */
664
- --qti-secondary-light: #bed4ff;
665
- --qti-secondary: #6daef8;
666
- --qti-secondary-dark: #3a449d;
667
-
668
- /* Background colors */
669
- --qti-bg-gray-50: #f9fafb;
670
- --qti-bg-gray-100: #f3f4f6;
671
- --qti-bg-white: white;
672
- --qti-bg-primary: var(--qti-primary);
673
-
674
- /* Text colors */
675
- --qti-text-gray-500: #45484f;
676
- --qti-text-white: white;
677
-
678
- /* Border properties */
679
- --qti-border-thickness: 1.5px;
680
- --qti-border-style: solid;
681
- --qti-border-color-gray: #c6cad0; /* Corresponding to border-gray-400 */
682
- --qti-border-radius-md: 0.375rem;
683
- --qti-border-radius-lg: 0.5rem;
684
- --qti-border-radius-full: 9999px;
685
-
686
- /* Padding */
687
- --qti-padding-sm: 0.125rem; /* py-0.5 */
688
- --qti-padding-md: 0.5rem; /* py-2 */
689
- --qti-padding-lg: 0.75rem; /* p-3 */
690
- --qti-padding-xl: 1rem; /* pl-4 */
691
-
692
- /* Form & layout */
693
- --qti-form-size: 1rem;
694
- --qti-gap-size: 0.5rem;
695
-
696
- /* Typography */
697
- --qti-font-weight-semibold: 600;
698
- --qti-line-height: 2.5;
699
-
700
- /* Focus & active states */
701
- --qti-active: blue;
702
- --qti-focus-color: #bddcff7e;
703
- --qti-focus-border-width: 5px;
704
-
705
- /* Correct/Incorrect feedback */
706
- --qti-correct: rgb(74 222 128);
707
- --qti-correct-light: rgb(220 252 231);
708
- --qti-incorrect: rgb(248 113 113);
709
- --qti-incorrect-light: rgb(254 226 226);
710
-
711
- /* ---- */
712
- --box-shadow: 0 0.125rem 0.25rem rgb(0 0 0 / 7.5%);
713
- --box-shadow-lg: 0 0.5rem 1rem rgb(0 0 0 / 15%);
714
- --table-border-color: var(--qti-border-color-gray);
715
- --foreground: var(--qti-bg-gray-50);
716
- --well-bg: var(--qti-bg-gray-50);
717
- --well-border: var(--qti-border-color-gray);
718
- --well-box-shadow: var(--box-shadow);
719
- }
720
-
721
- .chevron {
722
- background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
723
- no-repeat center right 6px;
724
- }
725
-
726
- .handle {
727
- background-image: radial-gradient(
728
- circle at center,
729
- rgb(0 0 0 / 10%) 0,
730
- rgb(0 0 0 / 20%) 2px,
731
- rgb(255 255 255 / 0%) 2px,
732
- rgb(255 255 255 / 0%) 100%
733
- );
734
- background-repeat: repeat-y;
735
- background-position: left center;
736
- background-size: 14px 8px;
737
- }
738
-
739
- .check-mask {
740
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
741
- mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
742
- }
743
-
744
- .bordered {
745
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
746
- outline: none;
747
- }
748
-
749
- .borderinvisible {
750
- border-color: transparent;
751
- }
752
-
753
- .form {
754
-
755
- width: var(--qti-form-size);
756
- height: var(--qti-form-size);
757
- align-self: 1;
758
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
759
- outline: none;
760
- }
761
-
762
- .p-lg {
763
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl); /* Padding shorthand */
764
- }
765
-
766
- .button {
767
-
768
- border-radius: var(--qti-border-radius-md);
769
- padding: var(--qti-padding-md) var(--qti-padding-md);
770
- font-weight: var(--qti-font-weight-semibold);
771
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
772
- outline: none;
773
- }
774
-
775
- .select {
776
-
777
- border-radius: var(--qti-border-radius-md);
778
- position: relative;
779
- -webkit-appearance: none;
780
- -moz-appearance: none;
781
- appearance: none;
782
- padding: var(--qti-padding-md) 1.75rem var(--qti-padding-md) var(--qti-padding-lg); /* Padding shorthand */ border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray); outline: none; background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
783
- no-repeat center right 6px;
784
- }
785
-
786
- .text {
787
-
788
- border-radius: 0;
789
- cursor: text;
790
- padding: var(--qti-padding-lg); /* Equal padding on all sides */
791
- background: unset;
792
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
793
- outline: none;
794
- }
795
-
796
- .spot {
797
-
798
- width: 100%;
799
- height: 100%;
800
- background-color: transparent;
801
- padding: 0;
802
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
803
- outline: none;
804
- }
805
-
806
- /* qti-select-point-interaction */
807
-
808
- .point {
809
-
810
- border-radius: var(--qti-border-radius-full);
811
- width: 1.5rem; /* w-6 */
812
- height: 1.5rem;
813
- background-color: transparent;
814
- padding: 0;
815
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
816
- outline: none;
817
- }
818
-
819
- .drag {
820
-
821
- transition:
822
- transform 200ms ease-out,
823
- box-shadow 200ms ease-out,
824
- rotate 200ms ease-out;
825
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl); /* Padding shorthand */
826
- border-radius: var(--qti-border-radius-md);
827
- cursor: grab;
828
- background-color: white;
829
- font-weight: var(--qti-font-weight-semibold);
830
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
831
- outline: none;
832
- background-image: radial-gradient(
833
- circle at center,
834
- rgb(0 0 0 / 10%) 0,
835
- rgb(0 0 0 / 20%) 2px,
836
- rgb(255 255 255 / 0%) 2px,
837
- rgb(255 255 255 / 0%) 100%
838
- );
839
- background-repeat: repeat-y;
840
- background-position: left center;
841
- background-size: 14px 8px;
842
- }
843
-
844
- .dragging {
845
- pointer-events: none;
846
- rotate: -2deg;
847
- box-shadow:
848
- 0 8px 12px rgb(0 0 0 / 20%),
849
- 0 4px 8px rgb(0 0 0 / 10%);
850
- }
851
-
852
- .drop {
853
-
854
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
855
- center no-repeat;
856
- border-radius: var(--qti-border-radius-lg);
857
- position: relative;
858
- background-color: var(--qti-bg-white);
859
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
860
- outline: none;
861
- }
862
-
863
- .dropping {
864
- background-color: var(--qti-primary-light);
865
- }
866
-
867
- .order {
868
- background-color: var(--qti-bg-primary);
869
- border-radius: var(--qti-border-radius-full);
870
- width: 1.5rem; /* w-6 */
871
- height: 1.5rem;
872
- color: var(--qti-text-white);
873
- }
874
-
875
- .check-size {
876
- width: calc(var(--qti-form-size) - 4px);
877
- height: calc(var(--qti-form-size) - 4px);
878
- }
879
-
880
- .check {
881
- /* display: flex; */
882
-
883
- /* align-items: center; */
884
- gap: 0.5rem;
885
- padding: var(--qti-padding-md) var(--qti-padding-md); /* Padding shorthand */
886
- outline: none;
887
- border-radius: var(--qti-border-radius-md);
888
- cursor: pointer;
889
- }
890
-
891
- .check-radio {
892
-
893
- border-radius: var(--qti-border-radius-full);
894
-
895
- width: var(--qti-form-size);
896
-
897
- height: var(--qti-form-size);
898
-
899
- align-self: 1;
900
-
901
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
902
-
903
- outline: none;
904
- }
905
-
906
- .check-radio-checked {
907
- background-color: var(--qti-bg-primary);
908
- border-radius: var(--qti-border-radius-full);
909
- }
910
-
911
- .check-checkbox {
912
-
913
- border-radius: var(--qti-border-radius-md);
914
-
915
- width: var(--qti-form-size);
916
-
917
- height: var(--qti-form-size);
918
-
919
- align-self: 1;
920
-
921
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
922
-
923
- outline: none;
924
- }
925
-
926
- .check-checkbox-checked {
927
-
928
- background-color: var(--qti-bg-primary);
929
- -webkit-mask-image: var(--check-mask);
930
- mask-image: var(--check-mask); /* check-mask */ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E"); mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
931
- }
932
-
933
- .hov {
934
- /* background-color: var(--qti-bg-gray-50); */
935
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
936
- }
937
-
938
- .foc {
939
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
940
- }
941
-
942
- .act {
943
- border-color: var(--qti-bg-primary); /* border-primary */
944
- }
945
-
946
- .rdo {
947
- cursor: pointer;
948
- background-color: white;
949
- outline: 0;
950
- border: none;
951
- }
952
-
953
- .dis {
954
- cursor: not-allowed;
955
- background-color: var(--qti-bg-gray-100);
956
- color: var(--qti-text-gray-500);
957
- border-color: var(--qti-border-color-gray);
958
- outline: 4px solid var(--qti-bg-gray-100);
959
-
960
- /* outline-color: var(--qti-text-gray-50); */
961
- }
962
-
963
- /* base */
964
-
965
- /* ============================
966
- QTI 3 shared css
967
- 1. Display
968
- 2. Special Flex styles
969
- 3. Margin
970
- 4. Padding
971
- 5. Horizontal Alignment styles
972
- 6. Vertical Alignment styles
973
- 7. Height
974
- 8. Width
975
- 9. Text-Indent
976
- 10. List Style
977
- 11. Layout
978
- 12. Other QTI 3 presentation utilities
979
- ============================ */
980
-
981
- /* ==========
982
- Display css
983
- =========== */
984
-
985
- .qti-display-inline {
986
- display: inline;
987
- }
988
-
989
- .qti-display-inline-block {
990
- display: inline-block;
991
- }
992
-
993
- .qti-display-block {
994
- display: block;
995
- }
996
-
997
- .qti-display-flex {
998
- display: flexbox;
999
- display: flex;
1000
- }
1001
-
1002
- .qti-display-inline-flex {
1003
- display: inline-flex;
1004
- }
1005
-
1006
- .qti-display-grid {
1007
- display: grid;
1008
- }
1009
-
1010
- .qti-display-inline-grid {
1011
- display: inline-grid;
1012
- }
1013
-
1014
- .qti-display-table {
1015
- display: table;
1016
- }
1017
-
1018
- .qti-display-table-cell {
1019
- display: table-cell;
1020
- }
1021
-
1022
- .qti-display-table-row {
1023
- display: table-row;
1024
- }
1025
-
1026
- .qti-display-list-item {
1027
- display: list-item;
1028
- }
1029
-
1030
- .qti-display-inherit {
1031
- display: inherit;
1032
- }
1033
-
1034
- /*
1035
- * hidden to screen readers and sighted
1036
- */
1037
-
1038
- .qti-hidden {
1039
- display: none;
1040
- }
1041
-
1042
- /*
1043
- * visible to screen readers, hidden to sighted
1044
- */
1045
-
1046
- .qti-visually-hidden {
1047
- position: fixed !important;
1048
- overflow: hidden;
1049
- clip: rect(1px 1px 1px 1px);
1050
- height: 1px;
1051
- width: 1px;
1052
- border: 0;
1053
- margin: -1px;
1054
- }
1055
-
1056
- /* =============================
1057
- Special flex styles
1058
- ============================= */
1059
-
1060
- .qti-flex-direction-column {
1061
- flex-direction: column;
1062
- }
1063
-
1064
- .qti-flex-direction-row {
1065
- flex-direction: row;
1066
- }
1067
-
1068
- .qti-flex-grow-1 {
1069
- flex-grow: 1;
1070
- }
1071
-
1072
- .qti-flex-grow-0 {
1073
- flex-grow: 0;
1074
- }
1075
-
1076
- /* =========
1077
- Margin css
1078
- ========== */
1079
-
1080
- /**
1081
- * For margin Top and Bottom and Left and Right
1082
- */
1083
-
1084
- .qti-margin-0 {
1085
- margin: 0 !important;
1086
- }
1087
-
1088
- .qti-margin-1 {
1089
- margin: 0.25rem !important;
1090
- }
1091
-
1092
- .qti-margin-2 {
1093
- margin: 0.5rem !important;
1094
- }
1095
-
1096
- .qti-margin-3 {
1097
- margin: 1rem !important;
1098
- }
1099
-
1100
- .qti-margin-4 {
1101
- margin: 1.5rem !important;
1102
- }
1103
-
1104
- .qti-margin-5 {
1105
- margin: 3rem !important;
1106
- }
1107
-
1108
- .qti-margin-auto {
1109
- margin: auto !important;
1110
- }
1111
-
1112
- /*
1113
- For margin Left and Right
1114
- */
1115
-
1116
- .qti-margin-x-0 {
1117
- margin-right: 0 !important;
1118
- margin-left: 0 !important;
1119
- }
1120
-
1121
- .qti-margin-x-1 {
1122
- margin-right: 0.25rem !important;
1123
- margin-left: 0.25rem !important;
1124
- }
1125
-
1126
- .qti-margin-x-2 {
1127
- margin-right: 0.5rem !important;
1128
- margin-left: 0.5rem !important;
1129
- }
1130
-
1131
- .qti-margin-x-3 {
1132
- margin-right: 1rem !important;
1133
- margin-left: 1rem !important;
1134
- }
1135
-
1136
- .qti-margin-x-4 {
1137
- margin-right: 1.5rem !important;
1138
- margin-left: 1.5rem !important;
1139
- }
1140
-
1141
- .qti-margin-x-5 {
1142
- margin-right: 3rem !important;
1143
- margin-left: 3rem !important;
1144
- }
1145
-
1146
- .qti-margin-x-auto {
1147
- margin-right: auto !important;
1148
- margin-left: auto !important;
1149
- }
1150
-
1151
- /*
1152
- For margin Top and Bottom
1153
- */
1154
-
1155
- .qti-margin-y-0 {
1156
- margin-top: 0 !important;
1157
- margin-bottom: 0 !important;
1158
- }
1159
-
1160
- .qti-margin-y-1 {
1161
- margin-top: 0.25rem !important;
1162
- margin-bottom: 0.25rem !important;
1163
- }
1164
-
1165
- .qti-margin-y-2 {
1166
- margin-top: 0.5rem !important;
1167
- margin-bottom: 0.5rem !important;
1168
- }
1169
-
1170
- .qti-margin-y-3 {
1171
- margin-top: 1rem !important;
1172
- margin-bottom: 1rem !important;
1173
- }
1174
-
1175
- .qti-margin-y-4 {
1176
- margin-top: 1.5rem !important;
1177
- margin-bottom: 1.5rem !important;
1178
- }
1179
-
1180
- .qti-margin-y-5 {
1181
- margin-top: 3rem !important;
1182
- margin-bottom: 3rem !important;
1183
- }
1184
-
1185
- .qti-margin-y-auto {
1186
- margin-top: auto !important;
1187
- margin-bottom: auto !important;
1188
- }
1189
-
1190
- /*
1191
- For margin Top
1192
- */
1193
-
1194
- .qti-margin-t-0 {
1195
- margin-top: 0 !important;
1196
- }
1197
-
1198
- .qti-margin-t-1 {
1199
- margin-top: 0.25rem !important;
1200
- }
1201
-
1202
- .qti-margin-t-2 {
1203
- margin-top: 0.5rem !important;
1204
- }
1205
-
1206
- .qti-margin-t-3 {
1207
- margin-top: 1rem !important;
1208
- }
1209
-
1210
- .qti-margin-t-4 {
1211
- margin-top: 1.5rem !important;
1212
- }
1213
-
1214
- .qti-margin-t-5 {
1215
- margin-top: 3rem !important;
1216
- }
1217
-
1218
- .qti-margin-t-auto {
1219
- margin-top: auto !important;
1220
- }
1221
-
1222
- /*
1223
- For margin Bottom
1224
- */
1225
-
1226
- .qti-margin-b-0 {
1227
- margin-bottom: 0 !important;
1228
- }
1229
-
1230
- .qti-margin-b-1 {
1231
- margin-bottom: 0.25rem !important;
1232
- }
1233
-
1234
- .qti-margin-b-2 {
1235
- margin-bottom: 0.5rem !important;
1236
- }
1237
-
1238
- .qti-margin-b-3 {
1239
- margin-bottom: 1rem !important;
1240
- }
1241
-
1242
- .qti-margin-b-4 {
1243
- margin-bottom: 1.5rem !important;
1244
- }
1245
-
1246
- .qti-margin-b-5 {
1247
- margin-bottom: 3rem !important;
1248
- }
1249
-
1250
- .qti-margin-b-auto {
1251
- margin-bottom: auto !important;
1252
- }
1253
-
1254
- /*
1255
- For margin Start LTR
1256
- */
1257
-
1258
- .qti-margin-s-0 {
1259
- margin-left: 0 !important;
1260
- }
1261
-
1262
- .qti-margin-s-1 {
1263
- margin-left: 0.25rem !important;
1264
- }
1265
-
1266
- .qti-margin-s-2 {
1267
- margin-left: 0.5rem !important;
1268
- }
1269
-
1270
- .qti-margin-s-3 {
1271
- margin-left: 1rem !important;
1272
- }
1273
-
1274
- .qti-margin-s-4 {
1275
- margin-left: 1.5rem !important;
1276
- }
1277
-
1278
- .qti-margin-s-5 {
1279
- margin-left: 3rem !important;
1280
- }
1281
-
1282
- .qti-margin-s-auto {
1283
- margin-left: auto !important;
1284
- }
1285
-
1286
- /*
1287
- For margin End LTR
1288
- */
1289
-
1290
- .qti-margin-e-0 {
1291
- margin-right: 0 !important;
1292
- }
1293
-
1294
- .qti-margin-e-1 {
1295
- margin-right: 0.25rem !important;
1296
- }
1297
-
1298
- .qti-margin-e-2 {
1299
- margin-right: 0.5rem !important;
1300
- }
1301
-
1302
- .qti-margin-e-3 {
1303
- margin-right: 1rem !important;
1304
- }
1305
-
1306
- .qti-margin-e-4 {
1307
- margin-right: 1.5rem !important;
1308
- }
1309
-
1310
- .qti-margin-e-5 {
1311
- margin-right: 3rem !important;
1312
- }
1313
-
1314
- .qti-margin-e-auto {
1315
- margin-right: auto !important;
1316
- }
1317
-
1318
- /* =========
1319
- Padding css
1320
- ========== */
1321
-
1322
- /*
1323
- For padding Top and Bottom and Left and Right
1324
- */
1325
-
1326
- .qti-padding-0 {
1327
- padding: 0 !important;
1328
- }
1329
-
1330
- .qti-padding-1 {
1331
- padding: 0.25rem !important;
1332
- }
1333
-
1334
- .qti-padding-2 {
1335
- padding: 0.5rem !important;
1336
- }
1337
-
1338
- .qti-padding-3 {
1339
- padding: 1rem !important;
1340
- }
1341
-
1342
- .qti-padding-4 {
1343
- padding: 1.5rem !important;
1344
- }
1345
-
1346
- .qti-padding-5 {
1347
- padding: 3rem !important;
1348
- }
1349
-
1350
- /*
1351
- For padding Left and Right
1352
- */
1353
-
1354
- .qti-padding-x-0 {
1355
- padding-right: 0 !important;
1356
- padding-left: 0 !important;
1357
- }
1358
-
1359
- .qti-padding-x-1 {
1360
- padding-right: 0.25rem !important;
1361
- padding-left: 0.25rem !important;
1362
- }
1363
-
1364
- .qti-padding-x-2 {
1365
- padding-right: 0.5rem !important;
1366
- padding-left: 0.5rem !important;
1367
- }
1368
-
1369
- .qti-padding-x-3 {
1370
- padding-right: 1rem !important;
1371
- padding-left: 1rem !important;
1372
- }
1373
-
1374
- .qti-padding-x-4 {
1375
- padding-right: 1.5rem !important;
1376
- padding-left: 1.5rem !important;
1377
- }
1378
-
1379
- .qti-padding-x-5 {
1380
- padding-right: 3rem !important;
1381
- padding-left: 3rem !important;
1382
- }
1383
-
1384
- /*
1385
- For padding Top and Bottom
1386
- */
1387
-
1388
- .qti-padding-y-0 {
1389
- padding-top: 0 !important;
1390
- padding-bottom: 0 !important;
1391
- }
1392
-
1393
- .qti-padding-y-1 {
1394
- padding-top: 0.25rem !important;
1395
- padding-bottom: 0.25rem !important;
1396
- }
1397
-
1398
- .qti-padding-y-2 {
1399
- padding-top: 0.5rem !important;
1400
- padding-bottom: 0.5rem !important;
1401
- }
1402
-
1403
- .qti-padding-y-3 {
1404
- padding-top: 1rem !important;
1405
- padding-bottom: 1rem !important;
1406
- }
1407
-
1408
- .qti-padding-y-4 {
1409
- padding-top: 1.5rem !important;
1410
- padding-bottom: 1.5rem !important;
1411
- }
1412
-
1413
- .qti-padding-y-5 {
1414
- padding-top: 3rem !important;
1415
- padding-bottom: 3rem !important;
1416
- }
1417
-
1418
- /*
1419
- For padding Top
1420
- */
1421
-
1422
- .qti-padding-t-0 {
1423
- padding-top: 0 !important;
1424
- }
1425
-
1426
- .qti-padding-t-1 {
1427
- padding-top: 0.25rem !important;
1428
- }
1429
-
1430
- .qti-padding-t-2 {
1431
- padding-top: 0.5rem !important;
1432
- }
1433
-
1434
- .qti-padding-t-3 {
1435
- padding-top: 1rem !important;
1436
- }
1437
-
1438
- .qti-padding-t-4 {
1439
- padding-top: 1.5rem !important;
1440
- }
1441
-
1442
- .qti-padding-t-5 {
1443
- padding-top: 3rem !important;
1444
- }
1445
-
1446
- /*
1447
- For padding Bottom
1448
- */
1449
-
1450
- .qti-padding-b-0 {
1451
- padding-bottom: 0 !important;
1452
- }
1453
-
1454
- .qti-padding-b-1 {
1455
- padding-bottom: 0.25rem !important;
1456
- }
1457
-
1458
- .qti-padding-b-2 {
1459
- padding-bottom: 0.5rem !important;
1460
- }
1461
-
1462
- .qti-padding-b-3 {
1463
- padding-bottom: 1rem !important;
1464
- }
1465
-
1466
- .qti-padding-b-4 {
1467
- padding-bottom: 1.5rem !important;
1468
- }
1469
-
1470
- .qti-padding-b-5 {
1471
- padding-bottom: 3rem !important;
1472
- }
1473
-
1474
- /*
1475
- For padding Start LTR
1476
- */
1477
-
1478
- .qti-padding-s-0 {
1479
- padding-left: 0 !important;
1480
- }
1481
-
1482
- .qti-padding-s-1 {
1483
- padding-left: 0.25rem !important;
1484
- }
1485
-
1486
- .qti-padding-s-2 {
1487
- padding-left: 0.5rem !important;
1488
- }
1489
-
1490
- .qti-padding-s-3 {
1491
- padding-left: 1rem !important;
1492
- }
1493
-
1494
- .qti-padding-s-4 {
1495
- padding-left: 1.5rem !important;
1496
- }
1497
-
1498
- .qti-padding-s-5 {
1499
- padding-left: 3rem !important;
1500
- }
1501
-
1502
- /*
1503
- For padding End LTR
1504
- */
1505
-
1506
- .qti-padding-e-0 {
1507
- padding-right: 0 !important;
1508
- }
1509
-
1510
- .qti-padding-e-1 {
1511
- padding-right: 0.25rem !important;
1512
- }
1513
-
1514
- .qti-padding-e-2 {
1515
- padding-right: 0.5rem !important;
1516
- }
1517
-
1518
- .qti-padding-e-3 {
1519
- padding-right: 1rem !important;
1520
- }
1521
-
1522
- .qti-padding-e-4 {
1523
- padding-right: 1.5rem !important;
1524
- }
1525
-
1526
- .qti-padding-e-5 {
1527
- padding-right: 3rem !important;
1528
- }
1529
-
1530
- /* ====================
1531
- Horizontal alignment
1532
- ==================== */
1533
-
1534
- .qti-align-left {
1535
- text-align: left;
1536
- }
1537
-
1538
- .qti-align-center {
1539
- text-align: center;
1540
- }
1541
-
1542
- .qti-align-right {
1543
- text-align: right;
1544
- }
1545
-
1546
- /* ==================
1547
- Vertical alignment
1548
- ================== */
1549
-
1550
- .qti-valign-top {
1551
- vertical-align: top;
1552
- }
1553
-
1554
- .qti-valign-middle {
1555
- vertical-align: middle;
1556
- }
1557
-
1558
- .qti-valign-baseline {
1559
- vertical-align: baseline;
1560
- }
1561
-
1562
- .qti-valign-bottom {
1563
- vertical-align: bottom;
1564
- }
1565
-
1566
- /* =============
1567
- Height styles
1568
- ============= */
1569
-
1570
- .qti-height-0 {
1571
- height: 0;
1572
- }
1573
-
1574
- .qti-height-px {
1575
- height: 1px;
1576
- }
1577
-
1578
- .qti-height-0p5 {
1579
- height: 0.125rem;
1580
- }
1581
-
1582
- .qti-height-1 {
1583
- height: 0.25rem;
1584
- }
1585
-
1586
- .qti-height-1p5 {
1587
- height: 0.375rem;
1588
- }
1589
-
1590
- .qti-height-2 {
1591
- height: 0.5rem;
1592
- }
1593
-
1594
- .qti-height-2p5 {
1595
- height: 0.625rem;
1596
- }
1597
-
1598
- .qti-height-3 {
1599
- height: 0.75rem;
1600
- }
1601
-
1602
- .qti-height-3p5 {
1603
- height: 0.875rem;
1604
- }
1605
-
1606
- .qti-height-4 {
1607
- height: 1rem;
1608
- }
1609
-
1610
- .qti-height-5 {
1611
- height: 1.25rem;
1612
- }
1613
-
1614
- .qti-height-6 {
1615
- height: 1.5rem;
1616
- }
1617
-
1618
- .qti-height-7 {
1619
- height: 1.75rem;
1620
- }
1621
-
1622
- .qti-height-8 {
1623
- height: 2rem;
1624
- }
1625
-
1626
- .qti-height-9 {
1627
- height: 2.25rem;
1628
- }
1629
-
1630
- .qti-height-10 {
1631
- height: 2.5rem;
1632
- }
1633
-
1634
- .qti-height-11 {
1635
- height: 2.75rem;
1636
- }
1637
-
1638
- .qti-height-12 {
1639
- height: 3rem;
1640
- }
1641
-
1642
- .qti-height-14 {
1643
- height: 3.5rem;
1644
- }
1645
-
1646
- .qti-height-16 {
1647
- height: 4rem;
1648
- }
1649
-
1650
- .qti-height-20 {
1651
- height: 5rem;
1652
- }
1653
-
1654
- .qti-height-24 {
1655
- height: 6rem;
1656
- }
1657
-
1658
- .qti-height-28 {
1659
- height: 7rem;
1660
- }
1661
-
1662
- .qti-height-32 {
1663
- height: 8rem;
1664
- }
1665
-
1666
- .qti-height-36 {
1667
- height: 9rem;
1668
- }
1669
-
1670
- .qti-height-40 {
1671
- height: 10rem;
1672
- }
1673
-
1674
- .qti-height-44 {
1675
- height: 11rem;
1676
- }
1677
-
1678
- .qti-height-48 {
1679
- height: 12rem;
1680
- }
1681
-
1682
- .qti-height-52 {
1683
- height: 13rem;
1684
- }
1685
-
1686
- .qti-height-56 {
1687
- height: 14rem;
1688
- }
1689
-
1690
- .qti-height-60 {
1691
- height: 15rem;
1692
- }
1693
-
1694
- .qti-height-64 {
1695
- height: 16rem;
1696
- }
1697
-
1698
- .qti-height-72 {
1699
- height: 18rem;
1700
- }
1701
-
1702
- .qti-height-80 {
1703
- height: 20rem;
1704
- }
1705
-
1706
- .qti-height-96 {
1707
- height: 24rem;
1708
- }
1709
-
1710
- .qti-height-1-2 {
1711
- height: 50%;
1712
- }
1713
-
1714
- .qti-height-1-3 {
1715
- height: 33.333333%;
1716
- }
1717
-
1718
- .qti-height-2-3 {
1719
- height: 66.666667%;
1720
- }
1721
-
1722
- .qti-height-1-4 {
1723
- height: 25%;
1724
- }
1725
-
1726
- .qti-height-2-4 {
1727
- height: 50%;
1728
- }
1729
-
1730
- .qti-height-3-4 {
1731
- height: 75%;
1732
- }
1733
-
1734
- .qti-height-1-5 {
1735
- height: 20%;
1736
- }
1737
-
1738
- .qti-height-2-5 {
1739
- height: 40%;
1740
- }
1741
-
1742
- .qti-height-3-5 {
1743
- height: 60%;
1744
- }
1745
-
1746
- .qti-height-4-5 {
1747
- height: 80%;
1748
- }
1749
-
1750
- .qti-height-1-6 {
1751
- height: 16.666667%;
1752
- }
1753
-
1754
- .qti-height-2-6 {
1755
- height: 33.333333%;
1756
- }
1757
-
1758
- .qti-height-3-6 {
1759
- height: 50%;
1760
- }
1761
-
1762
- .qti-height-4-6 {
1763
- height: 66.666667%;
1764
- }
1765
-
1766
- .qti-height-5-6 {
1767
- height: 83.333333%;
1768
- }
1769
-
1770
- .qti-height-auto {
1771
- height: auto;
1772
- }
1773
-
1774
- .qti-height-full {
1775
- height: 100%;
1776
- }
1777
-
1778
- /* ============
1779
- Width styles
1780
- ============ */
1781
-
1782
- .qti-width-0 {
1783
- width: 0;
1784
- }
1785
-
1786
- .qti-width-px {
1787
- width: 1px;
1788
- }
1789
-
1790
- .qti-width-0p5 {
1791
- width: 0.125rem;
1792
- }
1793
-
1794
- .qti-width-1 {
1795
- width: 0.25rem;
1796
- }
1797
-
1798
- .qti-width-1p5 {
1799
- width: 0.375rem;
1800
- }
1801
-
1802
- .qti-width-2 {
1803
- width: 0.5rem;
1804
- }
1805
-
1806
- .qti-width-2p5 {
1807
- width: 0.625rem;
1808
- }
1809
-
1810
- .qti-width-3 {
1811
- width: 0.75rem;
1812
- }
1813
-
1814
- .qti-width-3p5 {
1815
- width: 0.875rem;
1816
- }
1817
-
1818
- .qti-width-4 {
1819
- width: 1rem;
1820
- }
1821
-
1822
- .qti-width-5 {
1823
- width: 1.25rem;
1824
- }
1825
-
1826
- .qti-width-6 {
1827
- width: 1.5rem;
1828
- }
1829
-
1830
- .qti-width-7 {
1831
- width: 1.75rem;
1832
- }
1833
-
1834
- .qti-width-8 {
1835
- width: 2rem;
1836
- }
1837
-
1838
- .qti-width-9 {
1839
- width: 2.25rem;
1840
- }
1841
-
1842
- .qti-width-10 {
1843
- width: 2.5rem;
1844
- }
1845
-
1846
- .qti-width-11 {
1847
- width: 2.75rem;
1848
- }
1849
-
1850
- .qti-width-12 {
1851
- width: 3rem;
1852
- }
1853
-
1854
- .qti-width-14 {
1855
- width: 3.5rem;
1856
- }
1857
-
1858
- .qti-width-16 {
1859
- width: 4rem;
1860
- }
1861
-
1862
- .qti-width-20 {
1863
- width: 5rem;
1864
- }
1865
-
1866
- .qti-width-24 {
1867
- width: 6rem;
1868
- }
1869
-
1870
- .qti-width-28 {
1871
- width: 7rem;
1872
- }
1873
-
1874
- .qti-width-32 {
1875
- width: 8rem;
1876
- }
1877
-
1878
- .qti-width-36 {
1879
- width: 9rem;
1880
- }
1881
-
1882
- .qti-width-40 {
1883
- width: 10rem;
1884
- }
1885
-
1886
- .qti-width-44 {
1887
- width: 11rem;
1888
- }
1889
-
1890
- .qti-width-48 {
1891
- width: 12rem;
1892
- }
1893
-
1894
- .qti-width-52 {
1895
- width: 13rem;
1896
- }
1897
-
1898
- .qti-width-56 {
1899
- width: 14rem;
1900
- }
1901
-
1902
- .qti-width-60 {
1903
- width: 15rem;
1904
- }
1905
-
1906
- .qti-width-64 {
1907
- width: 16rem;
1908
- }
1909
-
1910
- .qti-width-72 {
1911
- width: 18rem;
1912
- }
1913
-
1914
- .qti-width-80 {
1915
- width: 20rem;
1916
- }
1917
-
1918
- .qti-width-96 {
1919
- width: 24rem;
1920
- }
1921
-
1922
- .qti-width-auto {
1923
- width: auto;
1924
- }
1925
-
1926
- .qti-width-1-2 {
1927
- width: 50%;
1928
- }
1929
-
1930
- .qti-width-1-3 {
1931
- width: 33.333333%;
1932
- }
1933
-
1934
- .qti-width-2-3 {
1935
- width: 66.666667%;
1936
- }
1937
-
1938
- .qti-width-1-4 {
1939
- width: 25%;
1940
- }
1941
-
1942
- .qti-width-2-4 {
1943
- width: 50%;
1944
- }
1945
-
1946
- .qti-width-3-4 {
1947
- width: 75%;
1948
- }
1949
-
1950
- .qti-width-1-5 {
1951
- width: 20%;
1952
- }
1953
-
1954
- .qti-width-2-5 {
1955
- width: 40%;
1956
- }
1957
-
1958
- .qti-width-3-5 {
1959
- width: 60%;
1960
- }
1961
-
1962
- .qti-width-4-5 {
1963
- width: 80%;
1964
- }
1965
-
1966
- .qti-width-1-6 {
1967
- width: 16.666667%;
1968
- }
1969
-
1970
- .qti-width-2-6 {
1971
- width: 33.333333%;
1972
- }
1973
-
1974
- .qti-width-3-6 {
1975
- width: 50%;
1976
- }
1977
-
1978
- .qti-width-4-6 {
1979
- width: 66.666667%;
1980
- }
1981
-
1982
- .qti-width-5-6 {
1983
- width: 83.333333%;
1984
- }
1985
-
1986
- .qti-width-1-12 {
1987
- width: 8.333333%;
1988
- }
1989
-
1990
- .qti-width-2-12 {
1991
- width: 16.666667%;
1992
- }
1993
-
1994
- .qti-width-3-12 {
1995
- width: 25%;
1996
- }
1997
-
1998
- .qti-width-4-12 {
1999
- width: 33.333333%;
2000
- }
2001
-
2002
- .qti-width-5-12 {
2003
- width: 41.666667%;
2004
- }
2005
-
2006
- .qti-width-6-12 {
2007
- width: 50%;
2008
- }
2009
-
2010
- .qti-width-7-12 {
2011
- width: 58.333333%;
2012
- }
2013
-
2014
- .qti-width-8-12 {
2015
- width: 66.666667%;
2016
- }
2017
-
2018
- .qti-width-9-12 {
2019
- width: 75%;
2020
- }
2021
-
2022
- .qti-width-10-12 {
2023
- width: 83.333333%;
2024
- }
2025
-
2026
- .qti-width-11-12 {
2027
- width: 91.666667%;
2028
- }
2029
-
2030
- .qti-width-full,
2031
- .qti-fullwidth {
2032
- width: 100%;
2033
- }
2034
-
2035
- /* ==================
2036
- Text Indent styles
2037
- ================== */
2038
-
2039
- .qti-text-indent-0 {
2040
- text-indent: 0;
2041
- }
2042
-
2043
- .qti-text-indent-px {
2044
- text-indent: 1px;
2045
- }
2046
-
2047
- .qti-text-indent-0p5 {
2048
- text-indent: 0.125rem;
2049
- }
2050
-
2051
- .qti-text-indent-1 {
2052
- text-indent: 0.25rem;
2053
- }
2054
-
2055
- .qti-text-indent-1p5 {
2056
- text-indent: 0.375rem;
2057
- }
2058
-
2059
- .qti-text-indent-2 {
2060
- text-indent: 0.5rem;
2061
- }
2062
-
2063
- .qti-text-indent-2p5 {
2064
- text-indent: 0.625rem;
2065
- }
2066
-
2067
- .qti-text-indent-3 {
2068
- text-indent: 0.75rem;
2069
- }
2070
-
2071
- .qti-text-indent-3p5 {
2072
- text-indent: 0.875rem;
2073
- }
2074
-
2075
- .qti-text-indent-4 {
2076
- text-indent: 1rem;
2077
- }
2078
-
2079
- .qti-text-indent-5 {
2080
- text-indent: 1.25rem;
2081
- }
2082
-
2083
- .qti-text-indent-6 {
2084
- text-indent: 1.5rem;
2085
- }
2086
-
2087
- .qti-text-indent-7 {
2088
- text-indent: 1.75rem;
2089
- }
2090
-
2091
- .qti-text-indent-8 {
2092
- text-indent: 2rem;
2093
- }
2094
-
2095
- .qti-text-indent-12 {
2096
- text-indent: 3rem;
2097
- }
2098
-
2099
- .qti-text-indent-16 {
2100
- text-indent: 4rem;
2101
- }
2102
-
2103
- .qti-text-indent-20 {
2104
- text-indent: 5rem;
2105
- }
2106
-
2107
- .qti-text-indent-24 {
2108
- text-indent: 6rem;
2109
- }
2110
-
2111
- .qti-text-indent-28 {
2112
- text-indent: 7rem;
2113
- }
2114
-
2115
- .qti-text-indent-32 {
2116
- text-indent: 8rem;
2117
- }
2118
-
2119
- /* =================
2120
- List Style styles
2121
- ================= */
2122
-
2123
- .qti-list-style-type-none {
2124
- list-style-type: none;
2125
- }
2126
-
2127
- .qti-list-style-type-disc {
2128
- list-style-type: disc;
2129
- }
2130
-
2131
- .qti-list-style-type-circle {
2132
- list-style-type: circle;
2133
- }
2134
-
2135
- .qti-list-style-type-square {
2136
- list-style-type: square;
2137
- }
2138
-
2139
- .qti-list-style-type-decimal {
2140
- list-style-type: decimal;
2141
- }
2142
-
2143
- .qti-list-style-type-decimal-leading-zero {
2144
- list-style-type: decimal-leading-zero;
2145
- }
2146
-
2147
- .qti-list-style-type-lower-alpha {
2148
- list-style-type: lower-alpha;
2149
- }
2150
-
2151
- .qti-list-style-type-upper-alpha {
2152
- list-style-type: upper-alpha;
2153
- }
2154
-
2155
- .qti-list-style-type-lower-roman {
2156
- list-style-type: lower-roman;
2157
- }
2158
-
2159
- .qti-list-style-type-upper-roman {
2160
- list-style-type: upper-roman;
2161
- }
2162
-
2163
- .qti-list-style-type-lower-latin {
2164
- list-style-type: lower-latin;
2165
- }
2166
-
2167
- .qti-list-style-type-upper-latin {
2168
- list-style-type: upper-latin;
2169
- }
2170
-
2171
- .qti-list-style-type-lower-greek {
2172
- list-style-type: lower-greek;
2173
- }
2174
-
2175
- .qti-list-style-type-arabic-indic {
2176
- list-style-type: arabic-indic;
2177
- }
2178
-
2179
- .qti-list-style-type-armenian {
2180
- list-style-type: armenian;
2181
- }
2182
-
2183
- .qti-list-style-type-lower-armenian {
2184
- list-style-type: lower-armenian;
2185
- }
2186
-
2187
- .qti-list-style-type-upper-armenian {
2188
- list-style-type: upper-armenian;
2189
- }
2190
-
2191
- .qti-list-style-type-bengali {
2192
- list-style-type: bengali;
2193
- }
2194
-
2195
- .qti-list-style-type-cambodian {
2196
- list-style-type: cambodian;
2197
- }
2198
-
2199
- .qti-list-style-type-simp-chinese-formal {
2200
- list-style-type: simp-chinese-formal;
2201
- }
2202
-
2203
- .qti-list-style-type-simp-chinese-informal {
2204
- list-style-type: simp-chinese-informal;
2205
- }
2206
-
2207
- .qti-list-style-type-trad-chinese-formal {
2208
- list-style-type: trad-chinese-formal;
2209
- }
2210
-
2211
- .qti-list-style-type-trad-chinese-informal {
2212
- list-style-type: trad-chinese-informal;
2213
- }
2214
-
2215
- .qti-list-style-type-cjk-ideographic {
2216
- list-style-type: cjk-ideographic;
2217
- }
2218
-
2219
- .qti-list-style-type-cjk-heavenly-stem {
2220
- list-style-type: cjk-heavenly-stem;
2221
- }
2222
-
2223
- .qti-list-style-type-cjk-earthly-branch {
2224
- list-style-type: cjk-earthly-branch;
2225
- }
2226
-
2227
- .qti-list-style-type-devanagari {
2228
- list-style-type: devanagari;
2229
- }
2230
-
2231
- .qti-list-style-type-ethiopic-halehame-ti-er {
2232
- list-style-type: ethiopic-halehame-ti-er;
2233
- }
2234
-
2235
- .qti-list-style-type-ethiopic-halehame-ti-et {
2236
- list-style-type: ethiopic-halehame-ti-et;
2237
- }
2238
-
2239
- .qti-list-style-type-ethiopic-halehame-am {
2240
- list-style-type: ethiopic-halehame-am;
2241
- }
2242
-
2243
- .qti-list-style-type-ethiopic-halehame {
2244
- list-style-type: ethiopic-halehame;
2245
- }
2246
-
2247
- .qti-list-style-type-georgian {
2248
- list-style-type: georgian;
2249
- }
2250
-
2251
- .qti-list-style-type-gujarati {
2252
- list-style-type: gujarati;
2253
- }
2254
-
2255
- .qti-list-style-type-gurmukhi {
2256
- list-style-type: gurmukhi;
2257
- }
2258
-
2259
- .qti-list-style-type-hangul {
2260
- list-style-type: hangul;
2261
- }
2262
-
2263
- .qti-list-style-type-hangul-consonant {
2264
- list-style-type: hangul-consonant;
2265
- }
2266
-
2267
- .qti-list-style-type-hebrew {
2268
- list-style-type: hebrew;
2269
- }
2270
-
2271
- .qti-list-style-type-hiragana {
2272
- list-style-type: hiragana;
2273
- }
2274
-
2275
- .qti-list-style-type-hiragana-iroha {
2276
- list-style-type: hiragana-iroha;
2277
- }
2278
-
2279
- .qti-list-style-type-khmer {
2280
- list-style-type: khmer;
2281
- }
2282
-
2283
- .qti-list-style-type-korean-hangul-formal {
2284
- list-style-type: korean-hangul-formal;
2285
- }
2286
-
2287
- .qti-list-style-type-korean-hanja-formal {
2288
- list-style-type: korean-hanja-formal;
2289
- }
2290
-
2291
- .qti-list-style-type-korean-hanja-informal {
2292
- list-style-type: korean-hanja-informal;
2293
- }
2294
-
2295
- .qti-list-style-type-lao {
2296
- list-style-type: lao;
2297
- }
2298
-
2299
- .qti-list-style-type-malayalam {
2300
- list-style-type: malayalam;
2301
- }
2302
-
2303
- .qti-list-style-type-mongolian {
2304
- list-style-type: mongolian;
2305
- }
2306
-
2307
- .qti-list-style-type-myanmar {
2308
- list-style-type: myanmar;
2309
- }
2310
-
2311
- .qti-list-style-type-oriya {
2312
- list-style-type: oriya;
2313
- }
2314
-
2315
- .qti-list-style-type-persian {
2316
- list-style-type: persian;
2317
- }
2318
-
2319
- .qti-list-style-type-thai {
2320
- list-style-type: thai;
2321
- }
2322
-
2323
- .qti-list-style-type-tibetan {
2324
- list-style-type: tibetan;
2325
- }
2326
-
2327
- .qti-list-style-type-telugu {
2328
- list-style-type: telugu;
2329
- }
2330
-
2331
- .qti-list-style-type-urdu {
2332
- list-style-type: urdu;
2333
- }
2334
-
2335
- /* =========================
2336
- Other QTI 3 Presentation Utilities
2337
- ========================= */
2338
-
2339
- .qti-bordered {
2340
- border: 1px solid var(--table-border-color);
2341
- }
2342
-
2343
- .qti-underline {
2344
- text-decoration: underline;
2345
- text-decoration-color: var(--foreground);
2346
- }
2347
-
2348
- .qti-italic {
2349
- font-style: italic;
2350
- }
2351
-
2352
- .qti-well {
2353
- min-height: 20px;
2354
- padding: 19px;
2355
- margin-bottom: 20px;
2356
- background-color: var(--well-bg);
2357
- border: var(--well-border);
2358
- border-radius: 4px;
2359
- box-shadow: var(--well-box-shadow);
2360
- }
2361
-
2362
- /* Set writing-mode to vertical-rl
2363
- Typical for CJK vertical text */
2364
-
2365
- .qti-writing-mode-vertical-rl {
2366
- writing-mode: vertical-rl;
2367
- }
2368
-
2369
- /* Set writing-mode to vertical-lr
2370
- Typical for Mongolian vertical text */
2371
-
2372
- .qti-writing-mode-vertical-lr {
2373
- writing-mode: vertical-lr;
2374
- }
2375
-
2376
- /* Set writing-mode to horizontal-tb
2377
- Browser default */
2378
-
2379
- .qti-writing-mode-horizontal-tb {
2380
- writing-mode: horizontal-tb;
2381
- }
2382
-
2383
- /* Float an element left */
2384
-
2385
- .qti-float-left {
2386
- float: left;
2387
- }
2388
-
2389
- /* Float an element right */
2390
-
2391
- .qti-float-right {
2392
- float: right;
2393
- }
2394
-
2395
- /* Remove a float */
2396
-
2397
- .qti-float-none {
2398
- float: none;
2399
- }
2400
-
2401
- /* Clearfix Hack to apply to a container of
2402
- floated content that overflows the container. */
2403
-
2404
- .qti-float-clearfix::after {
2405
- content: '';
2406
- clear: both;
2407
- display: table;
2408
- }
2409
-
2410
- .qti-float-clear-left
2411
- .qti-float-clear-right
2412
- .qti-float-clear-both
2413
-
2414
- /* Set text-orientation to upright */
2415
- .qti-text-orientation-upright {
2416
- text-orientation: upright;
2417
- }
2418
-
2419
- @layer qti-base {
2420
- .qti-layout-row {
2421
- display: flex;
2422
- flex-wrap: wrap;
2423
- width: 100%;
2424
- gap: 2.1276595745%;
2425
- }
2426
-
2427
- .qti-layout-row [class*='qti-layout-col'] {
2428
- box-sizing: border-box;
2429
- }
2430
-
2431
- .qti-layout-col1 {
2432
- width: 6.3829787234%;
2433
- }
2434
-
2435
- .qti-layout-col2 {
2436
- width: 14.8936170213%;
2437
- }
2438
-
2439
- .qti-layout-col3 {
2440
- width: 23.4042553191%;
2441
- }
2442
-
2443
- .qti-layout-col4 {
2444
- width: 31.914893617%;
2445
- }
2446
-
2447
- .qti-layout-col5 {
2448
- width: 40.4255319149%;
2449
- }
2450
-
2451
- .qti-layout-col6 {
2452
- width: 48.9361702128%;
2453
- }
2454
-
2455
- .qti-layout-col7 {
2456
- width: 57.4468085106%;
2457
- }
2458
-
2459
- .qti-layout-col8 {
2460
- width: 65.9574468085%;
2461
- }
2462
-
2463
- .qti-layout-col9 {
2464
- width: 74.4680851064%;
2465
- }
2466
-
2467
- .qti-layout-col10 {
2468
- width: 82.9787234043%;
2469
- }
2470
-
2471
- .qti-layout-col11 {
2472
- width: 91.4893617021%;
2473
- }
2474
-
2475
- .qti-layout-col12 {
2476
- width: 100%;
2477
- }
2478
-
2479
- .qti-layout-offset1 {
2480
- margin-left: 8.5106382979%;
2481
- }
2482
-
2483
- .qti-layout-offset2 {
2484
- margin-left: 17.0212765957%;
2485
- }
2486
-
2487
- .qti-layout-offset3 {
2488
- margin-left: 25.5319148936%;
2489
- }
2490
-
2491
- .qti-layout-offset4 {
2492
- margin-left: 34.0425531915%;
2493
- }
2494
-
2495
- .qti-layout-offset5 {
2496
- margin-left: 42.5531914894%;
2497
- }
2498
-
2499
- .qti-layout-offset6 {
2500
- margin-left: 51.0638297872%;
2501
- }
2502
-
2503
- .qti-layout-offset7 {
2504
- margin-left: 59.5744680851%;
2505
- }
2506
-
2507
- .qti-layout-offset8 {
2508
- margin-left: 68.085106383%;
2509
- }
2510
-
2511
- .qti-layout-offset9 {
2512
- margin-left: 76.5957446809%;
2513
- }
2514
-
2515
- .qti-layout-offset10 {
2516
- margin-left: 85.1063829787%;
2517
- }
2518
-
2519
- .qti-layout-offset11 {
2520
- margin-left: 93.6170212766%;
2521
- }
2522
-
2523
- .qti-layout-offset12 {
2524
- margin-left: 102.1276595745%;
2525
- }
2526
-
2527
- @media (width <= 767px) {
2528
- [class*='qti-layout-col'] {
2529
- width: 100%;
2530
- }
2531
- }
2532
- }
2533
-
2534
- [view],
2535
- qti-outcome-declaration,
2536
- qti-response-declaration {
2537
- display: none;
2538
- }
2539
-
2540
- [view].show {
2541
- display: block;
2542
- }
2543
-
2544
- :host {
2545
- box-sizing: border-box;
2546
- }
2547
-
2548
- *,
2549
- *::before,
2550
- *::after {
2551
- box-sizing: inherit;
2552
- }
2553
-
2554
- [popover] {
2555
- position: fixed;
2556
- inset: 0;
2557
- margin: auto;
2558
- border: solid;
2559
- padding: 0.25em;
2560
- overflow: auto;
2561
- color: CanvasText;
2562
- background-color: Canvas;
2563
- }
2564
-
2565
- [popovertarget] {
2566
- all: unset;
2567
- cursor: pointer;
2568
- }
2569
-
2570
- /* components */
2571
-
2572
- @layer qti-components {
2573
- qti-choice-interaction {
2574
- &.qti-input-control-hidden {
2575
- & qti-simple-choice {
2576
-
2577
- &:hover {
2578
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
2579
- }
2580
-
2581
- &:focus {
2582
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
2583
- }
2584
-
2585
- &::part(ch) {
2586
- display: none;
2587
- }
2588
-
2589
- &[aria-checked='true'] {
2590
- border-color: var(--qti-bg-primary);
2591
- }
2592
-
2593
- &[aria-readonly='true'] {
2594
- cursor: pointer;
2595
- background-color: white;
2596
- outline: 0;
2597
- border: none;
2598
- }
2599
-
2600
- &[aria-disabled='true'] {
2601
- cursor: not-allowed;
2602
- background-color: var(--qti-bg-gray-100);
2603
- color: var(--qti-text-gray-500);
2604
- border-color: var(--qti-border-color-gray);
2605
- outline: 4px solid var(--qti-bg-gray-100);
2606
- }
2607
-
2608
- border-radius: var(--qti-border-radius-md);
2609
-
2610
- padding: var(--qti-padding-md) var(--qti-padding-md);
2611
-
2612
- font-weight: var(--qti-font-weight-semibold);
2613
-
2614
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2615
-
2616
- outline: none
2617
- }
2618
- }
2619
-
2620
- &:not(.qti-input-control-hidden) {
2621
- & qti-simple-choice {
2622
-
2623
- &:not([aria-disabled='true'], [aria-readonly='true']):hover {
2624
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
2625
- }
2626
-
2627
- &:focus {
2628
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
2629
- }
2630
-
2631
- &[aria-checked='true'] {
2632
- border-color: var(--qti-bg-primary);
2633
- }
2634
-
2635
- &[aria-readonly='true'] {
2636
- cursor: pointer;
2637
- background-color: white;
2638
- outline: 0;
2639
- border: none;
2640
- }
2641
-
2642
- &[aria-disabled='true'] {
2643
- cursor: not-allowed;
2644
- background-color: var(--qti-bg-gray-100);
2645
- color: var(--qti-text-gray-500);
2646
- border-color: var(--qti-border-color-gray);
2647
- outline: 4px solid var(--qti-bg-gray-100);
2648
- }
2649
-
2650
- &::part(cha) {
2651
- width: calc(var(--qti-form-size) - 4px);
2652
- height: calc(var(--qti-form-size) - 4px);
2653
- }
2654
-
2655
- &[role='radio']::part(ch) {
2656
- border-radius: var(--qti-border-radius-full);
2657
- width: var(--qti-form-size);
2658
- height: var(--qti-form-size);
2659
- align-self: 1;
2660
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2661
- outline: none;
2662
- }
2663
-
2664
- &[role='radio'][aria-checked='true']::part(cha) {
2665
- background-color: var(--qti-bg-primary);
2666
- border-radius: var(--qti-border-radius-full);
2667
- }
2668
-
2669
- &[role='checkbox']::part(ch) {
2670
- border-radius: var(--qti-border-radius-md);
2671
- width: var(--qti-form-size);
2672
- height: var(--qti-form-size);
2673
- align-self: 1;
2674
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2675
- outline: none;
2676
- }
2677
-
2678
- &[role='checkbox'][aria-checked='true']::part(cha) {
2679
- background-color: var(--qti-bg-primary);
2680
- -webkit-mask-image: var(--check-mask);
2681
- mask-image: var(--check-mask);
2682
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
2683
- mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
2684
- }
2685
-
2686
- gap: 0.5rem;
2687
-
2688
- padding: var(--qti-padding-md) var(--qti-padding-md);
2689
-
2690
- outline: none;
2691
-
2692
- border-radius: var(--qti-border-radius-md);
2693
-
2694
- cursor: pointer
2695
- }
2696
- }
2697
-
2698
- & qti-simple-choice {
2699
- &[data-correct-response='true'] {
2700
- &::after {
2701
- content: '\\02714';
2702
- color: #16a34a; /* text-green-600 */
2703
- }
2704
- }
2705
- }
2706
-
2707
- & qti-simple-choice > p {
2708
- margin: 0;
2709
- padding: 0;
2710
- }
2711
- }
2712
-
2713
- qti-text-entry-interaction {
2714
- &:hover {
2715
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
2716
- }
2717
-
2718
- &:focus-within {
2719
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
2720
- }
2721
-
2722
- &::part(input) {
2723
- border-radius: 0;
2724
- cursor: text;
2725
- padding: var(--qti-padding-lg);
2726
- background: unset;
2727
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2728
- outline: none;
2729
- }
2730
- }
2731
-
2732
- qti-extended-text-interaction {
2733
- &::part(textarea) {
2734
- border-radius: 0;
2735
- cursor: text;
2736
- padding: var(--qti-padding-lg);
2737
- background: unset;
2738
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2739
- outline: none;
2740
- }
2741
-
2742
- &:hover {
2743
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
2744
- }
2745
-
2746
- &:focus-within {
2747
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
2748
- }
2749
- }
2750
-
2751
- qti-gap-match-interaction {
2752
- & qti-gap-text {
2753
-
2754
- &:hover {
2755
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
2756
- }
2757
-
2758
- &:focus {
2759
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
2760
- }
2761
-
2762
- transition: transform 200ms ease-out,
2763
- box-shadow 200ms ease-out,
2764
- rotate 200ms ease-out;
2765
-
2766
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
2767
-
2768
- border-radius: var(--qti-border-radius-md);
2769
-
2770
- cursor: grab;
2771
-
2772
- background-color: white;
2773
-
2774
- font-weight: var(--qti-font-weight-semibold);
2775
-
2776
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2777
-
2778
- outline: none;
2779
-
2780
- background-image: radial-gradient(
2781
- circle at center,
2782
- rgb(0 0 0 / 10%) 0,
2783
- rgb(0 0 0 / 20%) 2px,
2784
- rgb(255 255 255 / 0%) 2px,
2785
- rgb(255 255 255 / 0%) 100%
2786
- );
2787
-
2788
- background-repeat: repeat-y;
2789
-
2790
- background-position: left center;
2791
-
2792
- background-size: 14px 8px
2793
- }
2794
-
2795
- & qti-gap {
2796
-
2797
- display: inline-flex;
2798
- width: 8rem; /* w-32 */
2799
- &:empty::after {
2800
- padding: var(--qti-padding-md) var(--qti-padding-lg); /* Padding shorthand */
2801
- content: '\\0000a0'; /* when empty, put a space in it */
2802
- }
2803
-
2804
- &:not(:empty) {
2805
- display: inline-flex;
2806
- padding: 0;
2807
- width: auto;
2808
- }
2809
-
2810
- &:not(:empty) > * {
2811
- flex: 1;
2812
- transform: rotate(0); /* rotate-0 */
2813
- box-shadow: 0 0 0 1px #e5e7eb; /* ring-gray-200 */
2814
- }
2815
-
2816
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
2817
- center no-repeat;
2818
-
2819
- border-radius: var(--qti-border-radius-lg);
2820
-
2821
- position: relative;
2822
-
2823
- background-color: var(--qti-bg-white);
2824
-
2825
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2826
-
2827
- outline: none
2828
- }
2829
- }
2830
-
2831
- qti-hotspot-interaction {
2832
- & qti-hotspot-choice {
2833
- &[shape='circle'] {
2834
-
2835
- &:hover {
2836
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
2837
- }
2838
-
2839
- &:focus {
2840
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
2841
- }
2842
-
2843
- &[aria-checked='true'] {
2844
- border-color: var(--qti-bg-primary);
2845
- }
2846
-
2847
- &[aria-readonly='true'] {
2848
- cursor: pointer;
2849
- background-color: white;
2850
- outline: 0;
2851
- border: none;
2852
- }
2853
-
2854
- &[aria-disabled='true'] {
2855
- cursor: not-allowed;
2856
- background-color: var(--qti-bg-gray-100);
2857
- color: var(--qti-text-gray-500);
2858
- border-color: var(--qti-border-color-gray);
2859
- outline: 4px solid var(--qti-bg-gray-100);
2860
- }
2861
-
2862
- width: 100%;
2863
-
2864
- height: 100%;
2865
-
2866
- background-color: transparent;
2867
-
2868
- padding: 0;
2869
-
2870
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2871
-
2872
- outline: none
2873
- }
2874
-
2875
- &[shape='rect'] {
2876
-
2877
- &:hover {
2878
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
2879
- }
2880
-
2881
- &:focus {
2882
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
2883
- }
2884
-
2885
- &[aria-checked='true'] {
2886
- border-color: var(--qti-bg-primary);
2887
- }
2888
-
2889
- &[aria-readonly='true'] {
2890
- cursor: pointer;
2891
- background-color: white;
2892
- outline: 0;
2893
- border: none;
2894
- }
2895
-
2896
- &[aria-disabled='true'] {
2897
- cursor: not-allowed;
2898
- background-color: var(--qti-bg-gray-100);
2899
- color: var(--qti-text-gray-500);
2900
- border-color: var(--qti-border-color-gray);
2901
- outline: 4px solid var(--qti-bg-gray-100);
2902
- }
2903
-
2904
- width: 100%;
2905
-
2906
- height: 100%;
2907
-
2908
- background-color: transparent;
2909
-
2910
- padding: 0;
2911
-
2912
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2913
-
2914
- outline: none
2915
- }
2916
-
2917
- &[shape='poly'] {
2918
- &:hover::after {
2919
-
2920
- content: '';
2921
- width: 100%;
2922
- height: 100%;
2923
- background: repeating-linear-gradient(
2924
- 45deg,
2925
- var(--qti-primary),
2926
- var(--qti-primary) 5px,
2927
- transparent 5px,
2928
- transparent 10px
2929
- );
2930
- display: block;
2931
- border-color: var(--qti-bg-primary);
2932
- }
2933
-
2934
- &[aria-checked='true']::after {
2935
-
2936
- content: '';
2937
- width: 100%;
2938
- height: 100%;
2939
- background: repeating-linear-gradient(
2940
- 45deg,
2941
- transparent,
2942
- transparent 5px,
2943
- var(--qti-primary) 5px,
2944
- var(--qti-primary) 10px
2945
- );
2946
- display: block;
2947
- border-color: var(--qti-bg-primary);
2948
- }
2949
-
2950
- &[aria-checked='true'] {
2951
- border-color: var(--qti-bg-primary);
2952
- }
2953
-
2954
- &[aria-readonly='true'] {
2955
- cursor: pointer;
2956
- background-color: white;
2957
- outline: 0;
2958
- border: none;
2959
- }
2960
-
2961
- &[aria-disabled='true'] {
2962
- cursor: not-allowed;
2963
- background-color: var(--qti-bg-gray-100);
2964
- color: var(--qti-text-gray-500);
2965
- border-color: var(--qti-border-color-gray);
2966
- outline: 4px solid var(--qti-bg-gray-100);
2967
- }
2968
- }
2969
- }
2970
- }
2971
-
2972
- qti-hottext-interaction {
2973
- /* &:not(.qti-input-control-hidden),
2974
- &:not(.qti-unselected-hidden) { */
2975
- qti-hottext {
2976
- display: inline-flex;
2977
- align-items: center;
2978
-
2979
- &:hover {
2980
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
2981
- }
2982
-
2983
- &:focus {
2984
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
2985
- }
2986
-
2987
- &::part(cha) {
2988
- width: calc(var(--qti-form-size) - 4px);
2989
- height: calc(var(--qti-form-size) - 4px);
2990
- }
2991
-
2992
- &[role='radio']::part(ch) {
2993
- border-radius: var(--qti-border-radius-full);
2994
- width: var(--qti-form-size);
2995
- height: var(--qti-form-size);
2996
- align-self: 1;
2997
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
2998
- outline: none;
2999
- }
3000
-
3001
- &[role='radio'][aria-checked='true']::part(cha) {
3002
- background-color: var(--qti-bg-primary);
3003
- border-radius: var(--qti-border-radius-full);
3004
- }
3005
-
3006
- &[role='checkbox']::part(ch) {
3007
- border-radius: var(--qti-border-radius-md);
3008
- width: var(--qti-form-size);
3009
- height: var(--qti-form-size);
3010
- align-self: 1;
3011
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3012
- outline: none;
3013
- }
3014
-
3015
- &[role='checkbox'][aria-checked='true']::part(cha) {
3016
- background-color: var(--qti-bg-primary);
3017
- -webkit-mask-image: var(--check-mask);
3018
- mask-image: var(--check-mask);
3019
- -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
3020
- mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' width='100%' height='100%' viewBox='0 0 24 24'%3E%3Cpath d='M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z'/%3E%3C/svg%3E");
3021
- }
3022
-
3023
- gap: 0.5rem;
3024
-
3025
- padding: var(--qti-padding-md) var(--qti-padding-md);
3026
-
3027
- outline: none;
3028
-
3029
- border-radius: var(--qti-border-radius-md);
3030
-
3031
- cursor: pointer
3032
- }
3033
-
3034
- /* } */
3035
-
3036
- &.qti-input-control-hidden {
3037
- qti-hottext {
3038
- /* --qti-padding-md: 0.1rem;
3039
- --qti-padding-lg: 0.2rem;
3040
- --qti-border-radius-md: 0.3rem;
3041
- --qti-border-thickness: 1px;
3042
- --qti-font-weight-semibold: 400; */
3043
-
3044
- &:hover {
3045
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3046
- }
3047
-
3048
- &:focus {
3049
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3050
- }
3051
-
3052
- /* @layer qti-variants { */
3053
- &::part(ch) {
3054
- display: none;
3055
- }
3056
-
3057
- &[aria-checked='true'] {
3058
- border-color: var(--qti-bg-primary);
3059
- }
3060
-
3061
- &[aria-readonly='true'] {
3062
- cursor: pointer;
3063
- background-color: white;
3064
- outline: 0;
3065
- border: none;
3066
- }
3067
-
3068
- &[aria-disabled='true'] {
3069
- cursor: not-allowed;
3070
- background-color: var(--qti-bg-gray-100);
3071
- color: var(--qti-text-gray-500);
3072
- border-color: var(--qti-border-color-gray);
3073
- outline: 4px solid var(--qti-bg-gray-100);
3074
- }
3075
-
3076
- border-radius: var(--qti-border-radius-md);
3077
-
3078
- padding: var(--qti-padding-md) var(--qti-padding-md);
3079
-
3080
- font-weight: var(--qti-font-weight-semibold);
3081
-
3082
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3083
-
3084
- outline: none
3085
- }
3086
-
3087
- /* } */
3088
- }
3089
-
3090
- &.qti-unselected-hidden {
3091
- qti-hottext {
3092
- &:hover {
3093
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3094
- }
3095
-
3096
- &:focus {
3097
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3098
- }
3099
-
3100
- cursor: pointer;
3101
-
3102
- &::part(ch) {
3103
- display: none;
3104
- }
3105
-
3106
- &[aria-checked='true'] {
3107
- background-color: var(--qti-primary-light); /* bg-blue-200 */
3108
- }
3109
-
3110
- &[aria-readonly='true'] {
3111
- cursor: pointer;
3112
- background-color: white;
3113
- outline: 0;
3114
- border: none;
3115
- }
3116
-
3117
- &[aria-disabled='true'] {
3118
- cursor: not-allowed;
3119
- background-color: var(--qti-bg-gray-100);
3120
- color: var(--qti-text-gray-500);
3121
- border-color: var(--qti-border-color-gray);
3122
- outline: 4px solid var(--qti-bg-gray-100);
3123
- }
3124
- }
3125
- }
3126
- }
3127
-
3128
- qti-inline-choice-interaction {
3129
- &::part(select) {
3130
-
3131
- &:hover {
3132
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3133
- }
3134
-
3135
- &:focus {
3136
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3137
- }
3138
-
3139
- border-radius: var(--qti-border-radius-md);
3140
-
3141
- position: relative;
3142
-
3143
- -webkit-appearance: none;
3144
-
3145
- -moz-appearance: none;
3146
-
3147
- appearance: none;
3148
-
3149
- padding: var(--qti-padding-md) 1.75rem var(--qti-padding-md) var(--qti-padding-lg);
3150
-
3151
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3152
-
3153
- outline: none;
3154
-
3155
- background: url("data:image/svg+xml,%3Csvg fill='currentColor' width='22' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' aria-hidden='true'%3E%3Cpath clip-rule='evenodd' fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'%3E%3C/path%3E%3C/svg%3E")
3156
- no-repeat center right 6px
3157
- }
3158
- }
3159
-
3160
- qti-match-interaction:not(.qti-match-tabular) {
3161
- /* The draggables */
3162
- & qti-simple-match-set:first-of-type {
3163
- display: flex;
3164
- flex-wrap: wrap;
3165
- align-items: flex-start; /* Prevents children from stretching */
3166
- gap: var(--qti-gap-size);
3167
-
3168
- & qti-simple-associable-choice {
3169
-
3170
- &[dragging] {
3171
- pointer-events: none;
3172
- rotate: -2deg;
3173
- box-shadow: 0 8px 12px rgb(0 0 0 / 20%),
3174
- 0 4px 8px rgb(0 0 0 / 10%);
3175
- }
3176
-
3177
- &:hover {
3178
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3179
- }
3180
-
3181
- &:focus {
3182
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3183
- }
3184
-
3185
- transition: transform 200ms ease-out,
3186
- box-shadow 200ms ease-out,
3187
- rotate 200ms ease-out;
3188
-
3189
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
3190
-
3191
- border-radius: var(--qti-border-radius-md);
3192
-
3193
- cursor: grab;
3194
-
3195
- background-color: white;
3196
-
3197
- font-weight: var(--qti-font-weight-semibold);
3198
-
3199
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3200
-
3201
- outline: none;
3202
-
3203
- background-image: radial-gradient(
3204
- circle at center,
3205
- rgb(0 0 0 / 10%) 0,
3206
- rgb(0 0 0 / 20%) 2px,
3207
- rgb(255 255 255 / 0%) 2px,
3208
- rgb(255 255 255 / 0%) 100%
3209
- );
3210
-
3211
- background-repeat: repeat-y;
3212
-
3213
- background-position: left center;
3214
-
3215
- background-size: 14px 8px
3216
- }
3217
- }
3218
-
3219
- /* The droppables */
3220
- & qti-simple-match-set:last-of-type {
3221
- display: grid;
3222
- grid-auto-columns: 1fr; /* auto-cols-fr */
3223
- grid-auto-flow: column; /* grid-flow-col */
3224
- gap: var(--qti-gap-size); /* gap-2 */
3225
- width: 100%; /* w-full */
3226
-
3227
- & qti-simple-associable-choice {
3228
- display: flex;
3229
- flex-direction: column;
3230
- }
3231
-
3232
- & > qti-simple-associable-choice {
3233
- /* a droppable qti-simple-associable-choice */
3234
- box-sizing: border-box;
3235
- display: grid;
3236
- grid-row: 2 / 4;
3237
- grid-template-rows: subgrid;
3238
-
3239
- & img {
3240
- max-width: 100%;
3241
- height: auto;
3242
- }
3243
-
3244
- &[enabled] {
3245
- &::part(dropslot) {
3246
- background-color: var(--qti-primary-light);
3247
- }
3248
- }
3249
-
3250
- &[disabled] {
3251
- &::part(dropslot) {
3252
- cursor: not-allowed;
3253
- background-color: var(--qti-bg-gray-100);
3254
- color: var(--qti-text-gray-500);
3255
- border-color: var(--qti-border-color-gray);
3256
- outline: 4px solid var(--qti-bg-gray-100);
3257
- }
3258
- }
3259
-
3260
- &[active] {
3261
- &::part(dropslot) {
3262
- border-color: var(--qti-bg-primary);
3263
- }
3264
- }
3265
-
3266
- &::part(dropslot) {
3267
-
3268
- &[dragging] {
3269
- pointer-events: none;
3270
- rotate: -2deg;
3271
- box-shadow: 0 8px 12px rgb(0 0 0 / 20%),
3272
- 0 4px 8px rgb(0 0 0 / 10%);
3273
- }
3274
-
3275
- &:focus {
3276
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3277
- }
3278
-
3279
- min-height: 6rem;
3280
- gap: var(--qti-gap-size);
3281
- box-sizing: border-box;
3282
- display: flex;
3283
- justify-content: center;
3284
- align-items: center;
3285
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
3286
- center no-repeat;
3287
- border-radius: var(--qti-border-radius-lg);
3288
- position: relative;
3289
- background-color: var(--qti-bg-white);
3290
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3291
- outline: none;
3292
- }
3293
-
3294
- & > *:not(qti-simple-associable-choice) {
3295
- pointer-events: none;
3296
- }
3297
-
3298
- & > qti-simple-associable-choice {
3299
-
3300
- &::part(dropslot) {
3301
- display: none;
3302
- }
3303
-
3304
- &:hover {
3305
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3306
- }
3307
-
3308
- &:focus {
3309
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3310
- }
3311
-
3312
- flex-basis: fit-content;
3313
-
3314
- transition: transform 200ms ease-out,
3315
- box-shadow 200ms ease-out,
3316
- rotate 200ms ease-out;
3317
-
3318
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
3319
-
3320
- border-radius: var(--qti-border-radius-md);
3321
-
3322
- cursor: grab;
3323
-
3324
- background-color: white;
3325
-
3326
- font-weight: var(--qti-font-weight-semibold);
3327
-
3328
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3329
-
3330
- outline: none;
3331
-
3332
- background-image: radial-gradient(
3333
- circle at center,
3334
- rgb(0 0 0 / 10%) 0,
3335
- rgb(0 0 0 / 20%) 2px,
3336
- rgb(255 255 255 / 0%) 2px,
3337
- rgb(255 255 255 / 0%) 100%
3338
- );
3339
-
3340
- background-repeat: repeat-y;
3341
-
3342
- background-position: left center;
3343
-
3344
- background-size: 14px 8px;
3345
- }
3346
- }
3347
- }
3348
- }
3349
-
3350
- qti-order-interaction {
3351
- &::part(qti-simple-choice),
3352
- & qti-simple-choice {
3353
-
3354
- &:hover {
3355
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3356
- }
3357
-
3358
- &:focus {
3359
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3360
- }
3361
-
3362
- transition: transform 200ms ease-out,
3363
- box-shadow 200ms ease-out,
3364
- rotate 200ms ease-out;
3365
-
3366
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
3367
-
3368
- border-radius: var(--qti-border-radius-md);
3369
-
3370
- cursor: grab;
3371
-
3372
- background-color: white;
3373
-
3374
- font-weight: var(--qti-font-weight-semibold);
3375
-
3376
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3377
-
3378
- outline: none;
3379
-
3380
- background-image: radial-gradient(
3381
- circle at center,
3382
- rgb(0 0 0 / 10%) 0,
3383
- rgb(0 0 0 / 20%) 2px,
3384
- rgb(255 255 255 / 0%) 2px,
3385
- rgb(255 255 255 / 0%) 100%
3386
- );
3387
-
3388
- background-repeat: repeat-y;
3389
-
3390
- background-position: left center;
3391
-
3392
- background-size: 14px 8px
3393
- }
3394
-
3395
- &::part(qti-simple-choice) {
3396
- display: flex;
3397
- overflow: hidden;
3398
- align-items: center;
3399
- width: 100%;
3400
- text-overflow: ellipsis;
3401
- }
3402
-
3403
- &::part(drops) {
3404
- gap: 0.5rem; /* gap-2 */
3405
- }
3406
-
3407
- &::part(drags) {
3408
- gap: 0.5rem; /* gap-2 */
3409
- }
3410
-
3411
- &::part(drop-list) {
3412
-
3413
- &:hover {
3414
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3415
- }
3416
-
3417
- &:focus {
3418
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3419
- }
3420
-
3421
- display: flex;
3422
- min-height: 4rem;
3423
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
3424
- center no-repeat;
3425
- border-radius: var(--qti-border-radius-lg);
3426
- position: relative;
3427
- background-color: var(--qti-bg-white);
3428
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3429
- outline: none;
3430
- }
3431
-
3432
- &::part(active) {
3433
- border-color: var(--qti-bg-primary);
3434
- }
3435
- }
3436
-
3437
- qti-associate-interaction {
3438
- & qti-simple-associable-choice, /* drags when in lightdom */
3439
- &::part(qti-simple-associable-choice) /* drags when in shadowdom */ {
3440
-
3441
- &:hover {
3442
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3443
- }
3444
-
3445
- &:focus {
3446
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3447
- }
3448
-
3449
- &[dragging] {
3450
- pointer-events: none;
3451
- rotate: -2deg;
3452
- box-shadow: 0 8px 12px rgb(0 0 0 / 20%),
3453
- 0 4px 8px rgb(0 0 0 / 10%);
3454
- }
3455
-
3456
- transition: transform 200ms ease-out,
3457
- box-shadow 200ms ease-out,
3458
- rotate 200ms ease-out;
3459
-
3460
- padding: var(--qti-padding-md) var(--qti-padding-lg) var(--qti-padding-md) var(--qti-padding-xl);
3461
-
3462
- border-radius: var(--qti-border-radius-md);
3463
-
3464
- cursor: grab;
3465
-
3466
- background-color: white;
3467
-
3468
- font-weight: var(--qti-font-weight-semibold);
3469
-
3470
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3471
-
3472
- outline: none;
3473
-
3474
- background-image: radial-gradient(
3475
- circle at center,
3476
- rgb(0 0 0 / 10%) 0,
3477
- rgb(0 0 0 / 20%) 2px,
3478
- rgb(255 255 255 / 0%) 2px,
3479
- rgb(255 255 255 / 0%) 100%
3480
- );
3481
-
3482
- background-repeat: repeat-y;
3483
-
3484
- background-position: left center;
3485
-
3486
- background-size: 14px 8px
3487
- }
3488
-
3489
- /* display: flex;
3490
- overflow: hidden;
3491
- align-items: center; */
3492
-
3493
- /* &::part(drop-container) {
3494
- display: flex;
3495
- flex-direction: column;
3496
- gap: var(--qti-gap-size);
3497
- } */
3498
-
3499
- &::part(drop-list) {
3500
-
3501
- display: grid;
3502
- height: 3rem;
3503
- min-width: 10rem;
3504
- background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><circle cx="10" cy="10" r="7" stroke="%23CCCCCC" stroke-width="1" fill="transparent" /></svg>')
3505
- center no-repeat;
3506
- border-radius: var(--qti-border-radius-lg);
3507
- position: relative;
3508
- background-color: var(--qti-bg-white);
3509
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3510
- outline: none;
3511
- }
3512
-
3513
- &::part(drop-list):focus {
3514
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3515
- }
3516
-
3517
- &::part(drop-list)[dragging] {
3518
- border-color: var(--qti-bg-primary);
3519
- }
3520
-
3521
- /* &::part(drop-list) {
3522
- @apply act;
3523
- } */
3524
- }
3525
-
3526
- qti-graphic-order-interaction {
3527
- & qti-hotspot-choice {
3528
-
3529
- &:hover {
3530
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3531
- }
3532
-
3533
- &:focus {
3534
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3535
- }
3536
-
3537
- &[aria-checked='true'] {
3538
- border-color: var(--qti-bg-primary);
3539
- }
3540
-
3541
- &[aria-readonly='true'] {
3542
- cursor: pointer;
3543
- background-color: white;
3544
- outline: 0;
3545
- border: none;
3546
- }
3547
-
3548
- &[aria-disabled='true'] {
3549
- cursor: not-allowed;
3550
- background-color: var(--qti-bg-gray-100);
3551
- color: var(--qti-text-gray-500);
3552
- border-color: var(--qti-border-color-gray);
3553
- outline: 4px solid var(--qti-bg-gray-100);
3554
- }
3555
-
3556
- &[aria-ordervalue] {
3557
-
3558
- display: flex;
3559
- justify-content: center;
3560
- align-items: center;
3561
- background-color: var(--qti-bg-primary);
3562
- border-radius: var(--qti-border-radius-full);
3563
- width: 1.5rem;
3564
- height: 1.5rem;
3565
- color: var(--qti-text-white);
3566
- }
3567
-
3568
- &[aria-ordervalue]::after {
3569
- content: attr(aria-ordervalue) !important;
3570
- }
3571
-
3572
- width: 100%;
3573
-
3574
- height: 100%;
3575
-
3576
- background-color: transparent;
3577
-
3578
- padding: 0;
3579
-
3580
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3581
-
3582
- outline: none
3583
- }
3584
- }
3585
-
3586
- qti-graphic-associate-interaction {
3587
- position: relative;
3588
- display: block;
3589
-
3590
- & qti-associable-hotspot {
3591
- &[shape='circle'] {
3592
-
3593
- &:hover {
3594
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3595
- }
3596
-
3597
- &:focus {
3598
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3599
- }
3600
-
3601
- &[aria-checked='true'] {
3602
- border-color: var(--qti-bg-primary);
3603
- }
3604
-
3605
- &[aria-readonly='true'] {
3606
- cursor: pointer;
3607
- background-color: white;
3608
- outline: 0;
3609
- border: none;
3610
- }
3611
-
3612
- &[aria-disabled='true'] {
3613
- cursor: not-allowed;
3614
- background-color: var(--qti-bg-gray-100);
3615
- color: var(--qti-text-gray-500);
3616
- border-color: var(--qti-border-color-gray);
3617
- outline: 4px solid var(--qti-bg-gray-100);
3618
- }
3619
-
3620
- width: 100%;
3621
-
3622
- height: 100%;
3623
-
3624
- background-color: transparent;
3625
-
3626
- padding: 0;
3627
-
3628
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3629
-
3630
- outline: none
3631
- }
3632
-
3633
- &[shape='square'] {
3634
-
3635
- &:hover {
3636
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3637
- }
3638
-
3639
- &:focus {
3640
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3641
- }
3642
-
3643
- &[aria-checked='true'] {
3644
- border-color: var(--qti-bg-primary);
3645
- }
3646
-
3647
- &[aria-readonly='true'] {
3648
- cursor: pointer;
3649
- background-color: white;
3650
- outline: 0;
3651
- border: none;
3652
- }
3653
-
3654
- &[aria-disabled='true'] {
3655
- cursor: not-allowed;
3656
- background-color: var(--qti-bg-gray-100);
3657
- color: var(--qti-text-gray-500);
3658
- border-color: var(--qti-border-color-gray);
3659
- outline: 4px solid var(--qti-bg-gray-100);
3660
- }
3661
-
3662
- width: 100%;
3663
-
3664
- height: 100%;
3665
-
3666
- background-color: transparent;
3667
-
3668
- padding: 0;
3669
-
3670
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3671
-
3672
- outline: none
3673
- }
3674
- }
3675
- }
3676
-
3677
- qti-graphic-gap-match-interaction {
3678
- position: relative;
3679
-
3680
- & img {
3681
- margin: 0;
3682
- padding: 0;
3683
- }
3684
- }
3685
-
3686
- qti-slider-interaction {
3687
- display: block;
3688
-
3689
- --qti-tick-color: rgb(229 231 235 / 100%);
3690
- --qti-tick-width: 1px;
3691
-
3692
- &::part(slider) {
3693
- margin-left: 2rem; /* mx-8 */
3694
- margin-right: 2rem;
3695
- padding-bottom: 1rem; /* pb-4 */
3696
- padding-top: 1.25rem; /* pt-5 */
3697
- }
3698
-
3699
- --show-bounds: true;
3700
-
3701
- &::part(bounds) {
3702
- display: flex;
3703
- width: 100%;
3704
- justify-content: space-between;
3705
- margin-bottom: 0.5rem; /* mb-2 */
3706
- }
3707
-
3708
- --show-ticks: true;
3709
-
3710
- &::part(ticks) {
3711
- margin-left: 0.125rem; /* mx-0.5 */
3712
- margin-right: 0.125rem;
3713
- margin-bottom: 0.25rem; /* mb-1 */
3714
- height: 0.5rem; /* h-2 */
3715
- background-position: 0 center;
3716
- background: linear-gradient(to right, var(--qti-tick-color) var(--qti-tick-width), transparent 1px) repeat-x;
3717
- background-size: calc(calc(100% - var(--qti-tick-width)) / ((var(--max) - var(--min)) / var(--step))) 100%;
3718
- }
3719
-
3720
- &::part(rail) {
3721
- display: flex;
3722
- align-items: center;
3723
- box-sizing: border-box;
3724
- height: 0.375rem; /* h-1.5 */
3725
- width: 100%;
3726
- cursor: pointer;
3727
- border-radius: 9999px; /* rounded-full */
3728
- border: 1px solid #d1d5db; /* border-gray-300 */
3729
- background-color: #e5e7eb; /* bg-gray-200 */
3730
- }
3731
-
3732
- &::part(knob) {
3733
- background-color: var(--qti-primary);
3734
- position: relative;
3735
- height: 1rem; /* h-4 */
3736
- width: 1rem; /* w-4 */
3737
- transform-origin: center;
3738
- transform: translateX(-50%);
3739
- cursor: pointer;
3740
- border-radius: 9999px; /* rounded-full */
3741
- left: var(--value-percentage);
3742
- }
3743
-
3744
- --show-value: true;
3745
-
3746
- &::part(value) {
3747
- position: absolute;
3748
- bottom: 2rem; /* bottom-8 */
3749
- left: 0.5rem; /* left-2 */
3750
- transform: translateX(-50%);
3751
- cursor: pointer;
3752
- border-radius: 0.25rem; /* rounded */
3753
- background-color: #f3f4f6; /* bg-gray-100 */
3754
- padding: 0.25rem 0.5rem; /* px-2 py-1 */
3755
- text-align: center;
3756
- color: #6b7280; /* text-gray-500 */
3757
- }
3758
- }
3759
-
3760
- qti-select-point-interaction {
3761
- &::part(point) {
3762
- &:hover {
3763
- box-shadow: 0 2px 4px rgb(0 0 0 / 20%);
3764
- }
3765
-
3766
- &:focus {
3767
- outline: var(--qti-focus-border-width) solid var(--qti-focus-color);
3768
- }
3769
-
3770
- border-radius: var(--qti-border-radius-full);
3771
-
3772
- width: 1.5rem;
3773
-
3774
- height: 1.5rem;
3775
-
3776
- background-color: transparent;
3777
-
3778
- padding: 0;
3779
-
3780
- border: var(--qti-border-thickness) var(--qti-border-style) var(--qti-border-color-gray);
3781
-
3782
- outline: none;
3783
- }
3784
- }
3785
-
3786
- qti-position-object-stage {
3787
- & qti-position-object-interaction {
3788
- /* no styles necessary, only layout styles, defined in the component */
3789
- }
3790
- }
3791
-
3792
- qti-prompt {
3793
- margin: 0.5rem 0; /* my-2 */
3794
- display: block;
3795
- width: 100%;
3796
- }
3797
- }
3798
-
3799
- /* utilities */
3800
-
3801
- /* @import './styles/qti-utilities/qti-styles'; */
3802
-
3803
- /* variants */
3804
-
3805
- /* @import './styles/qti-variants/qti-input-width'; */
3806
-
3807
- /* @import './styles/qti-variants/qti-interactions'; */
3808
- `;var Z,qe,Ur=class extends HTMLElement{constructor(){super(...arguments);Jt(this,Z,null);Jt(this,qe,null)}set xmlDoc(e){if(!V(this,Z)){Gt(this,Z,this.attachShadow({mode:"open"}));let r=new CSSStyleSheet;r.replaceSync(Bi),V(this,Z).adoptedStyleSheets=[r],V(this,Z).innerHTML="",V(this,Z).addEventListener("qti-assessment-item-connected",({target:i})=>Gt(this,qe,i))}V(this,Z).innerHTML="",V(this,Z).appendChild(e.cloneNode(!0))}processResponse(){var e;(e=V(this,qe))!=null&&e.processResponse()||console.warn("No qti-assessment-item found")}get variables(){var e;return((e=V(this,qe))==null?void 0:e.variables)||console.warn("No qti-assessment-item found")}set variables(e){V(this,qe).variables=e}attributeChangedCallback(e,r,i){switch(e){case"view":break;default:r!==i&&(this[e]=i);break}}};Z=new WeakMap,qe=new WeakMap;customElements.define("qti-item",Ur);var ji=s=>s.endsWith("/")?s:`${s}/`,jf=async(s,t,e=!0)=>{let r=ji(s),i=await mr().load(`${r}imsmanifest.xml`).then(c=>c.assessmentTest()),o=await Rt().load(`${r}${i.href}`).then(c=>c.items()),n=`${r}${i.href.substring(0,i.href.lastIndexOf("/"))}/${o[t].href}`,a=await Ze().load(n,e).then(c=>c.path(n.substring(0,n.lastIndexOf("/"))).stripStyleSheets());return{itemHTMLDoc:a.htmldoc(),itemHTML:a.html(),items:o}},Xf=async s=>{let t=ji(s),e=await mr().load(`${t}imsmanifest.xml`).then(c=>c.assessmentTest()),r=await Rt().load(`${t}${e.href}`).then(c=>c.htmldoc()),i=await Rt().load(`${t}${e.href}`).then(c=>c.items()),n=`${t.substring(0,t.lastIndexOf("/"))}/${e.href.substring(0,e.href.lastIndexOf("/"))}`,a=`${n}/${i[0].href.substring(0,i[0].href.lastIndexOf("/"))}`;return{assessmentXML:r,itemLocation:a,assessmentLocation:n,items:i,testIdentifier:e.identifier}},Yf=async(s,t=!0)=>Ze().load(s,t).then(e=>e.path(s.substring(0,s.lastIndexOf("/"))).stripStyleSheets().html());export{O as ActiveElementMixin,T as Interaction,at as QtPrintedVariable,zt as QtiAnd,L as QtiAssessmentItem,Ae as QtiAssessmentStimulusRef,gt as QtiAssociableHotspot,Le as QtiAssociateInteraction,Ft as QtiBaseValue,Re as QtiChoiceInteraction,$t as QtiCompanionMaterialsInfo,H as QtiConditionExpression,Cr as QtiContains,Dt as QtiContentBody,kr as QtiCorrect,W as QtiCustomInteraction,ut as QtiCustomOperator,$e as QtiEndAttemptInteraction,jt as QtiEqual,Bt as QtiEqualRounded,x as QtiExpression,j as QtiExtendedTextInteraction,Qe as QtiFeedbackBlock,et as QtiFeedbackInline,He as QtiGap,Pe as QtiGapImg,lt as QtiGapMatchInteraction,Ne as QtiGapText,K as QtiGraphicAssociateInteraction,ct as QtiGraphicGapMatchInteraction,dt as QtiGraphicOrderInteraction,Tr as QtiGt,Ar as QtiGte,Ve as QtiHotspotChoice,pt as QtiHotspotInteraction,ft as QtiHottext,It as QtiHottextInteraction,bt as QtiInlineChoice,de as QtiInlineChoiceInteraction,_r as QtiIsNull,Ur as QtiItem,Ut as QtiLookupOutcomeValue,Sr as QtiLt,Rr as QtiLte,Xt as QtiMapResponse,Me as QtiMapping,Mr as QtiMatch,me as QtiMatchInteraction,ht as QtiMediaInteraction,Lr as QtiMember,tt as QtiModalFeedback,$r as QtiMultiple,Dr as QtiNot,Hr as QtiOr,re as QtiOrderInteraction,Pr as QtiOrdered,U as QtiOutcomeDeclaration,st as QtiOutcomeProcessing,yr as QtiOutcomeProcessingProcessor,pe as QtiPortableCustomInteraction,mt as QtiPositionObjectStage,Nr as QtiProduct,Mt as QtiPrompt,xr as QtiResponseCondition,ee as QtiResponseDeclaration,ot as QtiResponseElse,Er as QtiResponseElseIf,nt as QtiResponseIf,xe as QtiResponseProcessing,z as QtiRubricBlock,X as QtiRule,Zt as QtiSPositionObjectInteraction,ue as QtiSelectPointInteraction,qr as QtiSetOutcomeValue,wr as QtiSetOutcomeValueRule,he as QtiSimpleAssociableChoice,Ie as QtiSimpleChoice,R as QtiSliderInteraction,Yt as QtiStringMatch,Lt as QtiStylesheet,Vr as QtiSum,Ir as QtiSumExpression,D as QtiTextEntryInteraction,Or as QtiVariable,Xf as getAssessmentData,jf as getItemByIndex,Yf as getItemByUri,I as itemContext,wi as itemContextVariables,Ts as qtiAndMixin,Ze as qtiTransformItem,mr as qtiTransformManifest,Rt as qtiTransformTest};
3809
- /*! Bundled license information:
3810
-
3811
- @lit/context/lib/context-request-event.js:
3812
- (**
3813
- * @license
3814
- * Copyright 2021 Google LLC
3815
- * SPDX-License-Identifier: BSD-3-Clause
3816
- *)
3817
-
3818
- @lit/context/lib/create-context.js:
3819
- (**
3820
- * @license
3821
- * Copyright 2021 Google LLC
3822
- * SPDX-License-Identifier: BSD-3-Clause
3823
- *)
3824
-
3825
- @lit/context/lib/controllers/context-consumer.js:
3826
- (**
3827
- * @license
3828
- * Copyright 2021 Google LLC
3829
- * SPDX-License-Identifier: BSD-3-Clause
3830
- *)
3831
-
3832
- @lit/context/lib/value-notifier.js:
3833
- (**
3834
- * @license
3835
- * Copyright 2021 Google LLC
3836
- * SPDX-License-Identifier: BSD-3-Clause
3837
- *)
3838
-
3839
- @lit/context/lib/controllers/context-provider.js:
3840
- (**
3841
- * @license
3842
- * Copyright 2021 Google LLC
3843
- * SPDX-License-Identifier: BSD-3-Clause
3844
- *)
3845
-
3846
- @lit/context/lib/context-root.js:
3847
- (**
3848
- * @license
3849
- * Copyright 2021 Google LLC
3850
- * SPDX-License-Identifier: BSD-3-Clause
3851
- *)
3852
-
3853
- @lit/context/lib/decorators/provide.js:
3854
- (**
3855
- * @license
3856
- * Copyright 2017 Google LLC
3857
- * SPDX-License-Identifier: BSD-3-Clause
3858
- *)
3859
-
3860
- @lit/context/lib/decorators/consume.js:
3861
- (**
3862
- * @license
3863
- * Copyright 2022 Google LLC
3864
- * SPDX-License-Identifier: BSD-3-Clause
3865
- *)
3866
-
3867
- @lit-labs/ssr-dom-shim/lib/element-internals.js:
3868
- (**
3869
- * @license
3870
- * Copyright 2023 Google LLC
3871
- * SPDX-License-Identifier: BSD-3-Clause
3872
- *)
3873
-
3874
- @lit-labs/ssr-dom-shim/index.js:
3875
- (**
3876
- * @license
3877
- * Copyright 2019 Google LLC
3878
- * SPDX-License-Identifier: BSD-3-Clause
3879
- *)
3880
-
3881
- @lit/reactive-element/node/css-tag.js:
3882
- (**
3883
- * @license
3884
- * Copyright 2019 Google LLC
3885
- * SPDX-License-Identifier: BSD-3-Clause
3886
- *)
3887
-
3888
- lit-html/node/lit-html.js:
3889
- (**
3890
- * @license
3891
- * Copyright 2017 Google LLC
3892
- * SPDX-License-Identifier: BSD-3-Clause
3893
- *)
3894
-
3895
- lit-element/lit-element.js:
3896
- (**
3897
- * @license
3898
- * Copyright 2017 Google LLC
3899
- * SPDX-License-Identifier: BSD-3-Clause
3900
- *)
3901
-
3902
- lit-html/node/is-server.js:
3903
- (**
3904
- * @license
3905
- * Copyright 2022 Google LLC
3906
- * SPDX-License-Identifier: BSD-3-Clause
3907
- *)
3908
-
3909
- @lit/reactive-element/node/decorators/custom-element.js:
3910
- (**
3911
- * @license
3912
- * Copyright 2017 Google LLC
3913
- * SPDX-License-Identifier: BSD-3-Clause
3914
- *)
3915
-
3916
- @lit/reactive-element/node/decorators/property.js:
3917
- (**
3918
- * @license
3919
- * Copyright 2017 Google LLC
3920
- * SPDX-License-Identifier: BSD-3-Clause
3921
- *)
3922
-
3923
- @lit/reactive-element/node/decorators/state.js:
3924
- (**
3925
- * @license
3926
- * Copyright 2017 Google LLC
3927
- * SPDX-License-Identifier: BSD-3-Clause
3928
- *)
3929
-
3930
- @lit/reactive-element/node/decorators/event-options.js:
3931
- (**
3932
- * @license
3933
- * Copyright 2017 Google LLC
3934
- * SPDX-License-Identifier: BSD-3-Clause
3935
- *)
3936
-
3937
- @lit/reactive-element/node/decorators/base.js:
3938
- (**
3939
- * @license
3940
- * Copyright 2017 Google LLC
3941
- * SPDX-License-Identifier: BSD-3-Clause
3942
- *)
3943
-
3944
- @lit/reactive-element/node/decorators/query.js:
3945
- (**
3946
- * @license
3947
- * Copyright 2017 Google LLC
3948
- * SPDX-License-Identifier: BSD-3-Clause
3949
- *)
3950
-
3951
- @lit/reactive-element/node/decorators/query-all.js:
3952
- (**
3953
- * @license
3954
- * Copyright 2017 Google LLC
3955
- * SPDX-License-Identifier: BSD-3-Clause
3956
- *)
3957
-
3958
- @lit/reactive-element/node/decorators/query-async.js:
3959
- (**
3960
- * @license
3961
- * Copyright 2017 Google LLC
3962
- * SPDX-License-Identifier: BSD-3-Clause
3963
- *)
3964
-
3965
- @lit/reactive-element/node/decorators/query-assigned-elements.js:
3966
- (**
3967
- * @license
3968
- * Copyright 2021 Google LLC
3969
- * SPDX-License-Identifier: BSD-3-Clause
3970
- *)
3971
-
3972
- @lit/reactive-element/node/decorators/query-assigned-nodes.js:
3973
- (**
3974
- * @license
3975
- * Copyright 2017 Google LLC
3976
- * SPDX-License-Identifier: BSD-3-Clause
3977
- *)
3978
-
3979
- lit-html/node/directives/if-defined.js:
3980
- (**
3981
- * @license
3982
- * Copyright 2018 Google LLC
3983
- * SPDX-License-Identifier: BSD-3-Clause
3984
- *)
3985
-
3986
- lit-html/node/directive-helpers.js:
3987
- (**
3988
- * @license
3989
- * Copyright 2020 Google LLC
3990
- * SPDX-License-Identifier: BSD-3-Clause
3991
- *)
3992
-
3993
- lit-html/node/directive.js:
3994
- (**
3995
- * @license
3996
- * Copyright 2017 Google LLC
3997
- * SPDX-License-Identifier: BSD-3-Clause
3998
- *)
3999
-
4000
- lit-html/node/async-directive.js:
4001
- (**
4002
- * @license
4003
- * Copyright 2017 Google LLC
4004
- * SPDX-License-Identifier: BSD-3-Clause
4005
- *)
4006
-
4007
- lit-html/node/directives/ref.js:
4008
- (**
4009
- * @license
4010
- * Copyright 2020 Google LLC
4011
- * SPDX-License-Identifier: BSD-3-Clause
4012
- *)
4013
-
4014
- lit-html/node/directives/unsafe-html.js:
4015
- (**
4016
- * @license
4017
- * Copyright 2017 Google LLC
4018
- * SPDX-License-Identifier: BSD-3-Clause
4019
- *)
4020
-
4021
- lit-html/node/directives/repeat.js:
4022
- (**
4023
- * @license
4024
- * Copyright 2017 Google LLC
4025
- * SPDX-License-Identifier: BSD-3-Clause
4026
- *)
4027
-
4028
- lit-html/node/directives/style-map.js:
4029
- (**
4030
- * @license
4031
- * Copyright 2018 Google LLC
4032
- * SPDX-License-Identifier: BSD-3-Clause
4033
- *)
4034
- */