@citolab/qti-components 6.5.0 → 6.5.1
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/custom-elements.json +119 -121
- package/dist/index.cjs +145 -146
- package/dist/index.d.cts +141 -142
- package/dist/index.d.ts +141 -142
- package/dist/index.js +145 -146
- package/dist/qti-components/index.cjs +99 -89
- package/dist/qti-components/index.d.cts +141 -142
- package/dist/qti-components/index.d.ts +141 -142
- package/dist/qti-components/index.js +122 -112
- package/dist/qti-transformers/index.cjs +1 -1
- package/dist/qti-transformers/index.js +1 -1
- package/dist/styles.bundled.css +422 -50
- package/dist/styles.css +7 -50
- package/package.json +6 -9
- package/src/styles/qti-interactions.css +6 -6
|
@@ -1,56 +1,46 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk6G76D2MIcjs = require('../chunk-6G76D2MI.cjs');var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk6G76D2MIcjs = require('../chunk-6G76D2MI.cjs');var _context2 = require('@lit/context');var _lit = require('lit');var _decoratorsjs = require('lit/decorators.js');function y(a,i){let e=_chunk6G76D2MIcjs.a.call(void 0, {waitUntilFirstUpdate:!1},i);return(t,r)=>{let{update:s}=t,o=Array.isArray(a)?a:[a];t.update=function(c){o.forEach(l=>{let p=l;if(c.has(p)){let d=c.get(p),u=this[p];d!==u&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[r](d,u)}}),s.call(this,c)}}}var P=_context2.createContext.call(void 0, "item");var A=class extends _lit.LitElement{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent="false";this._handleDisabledChange=(e,t)=>{this._interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this._interactionElements.forEach(r=>r.readonly=t);this._context={identifier:this.getAttribute("identifier"),variables:[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}]};this._initialContext=_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},this._context),{variables:this._context.variables});this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",({detail:e})=>{this._context=_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},this._context),{variables:[...this._context.variables,e.variable]}),this._initialContext=this._context}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let t=e.detail;this._feedbackElements.push(t),t.checkShowFeedback(t.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.target)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:t,countAttempt:r}=e.detail;this.updateResponseVariable(t,"true"),this.processResponse(r)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:t,value:r}=e.detail;this.updateOutcomeVariable(t,r)}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>({identifier:e.identifier,value:e.value,type:e.type}))}set variables(e){if(!Array.isArray(e)||e.some(t=>!("identifier"in t))){console.warn("variables property should be an array of VariableDeclaration");return}this._context=_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},this._context),{variables:this._context.variables.map(t=>{let r=e.find(s=>s.identifier===t.identifier);return r?_chunk6G76D2MIcjs.a.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},t),r):t})}),this._context.variables.forEach(t=>{if(t.type==="response"){let r=this._interactionElements.find(s=>s.responseIdentifier===t.identifier);r&&(r.response=t.value)}t.type==="outcome"&&this._feedbackElements.forEach(r=>r.checkShowFeedback(t.identifier))})}firstUpdated(e){super.firstUpdated(e),this._emit("qti-item-first-updated",this)}disconnectedCallback(){super.disconnectedCallback(),this._emit("qti-item-disconnected")}set responses(e){if(e)for(let t of e){this.getResponse(t.responseIdentifier)&&this.updateResponseVariable(t.responseIdentifier,t.response);let s=this._interactionElements.find(o=>o.getAttribute("response-identifier")===t.responseIdentifier);s&&(s.response=t.response)}}render(){return _lit.html`<slot></slot>`}showCorrectResponse(e){let r=this._context.variables.filter(s=>"correctResponse"in s&&s.correctResponse).map(s=>({responseIdentifier:s.identifier,response:s.correctResponse}));for(let s of r){let o=this._interactionElements.find(c=>c.getAttribute("response-identifier")===s.responseIdentifier);o&&(o.correctResponse=e?s.response:"")}}processResponse(e=!0){var r;let t=this.querySelector("qti-response-processing");return t?t.process?(t.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+((r=this._context.variables.find(s=>s.identifier==="numAttempts"))==null?void 0:r.value)+1).toString()),this._emit("qti-response-processed"),!0):(console.info("Client side response webcomponents not available"),!1):(console.info("Client side response processing template not available"),!1)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(t=>t.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:t,response:r}=e.detail;this.updateResponseVariable(t,r)}updateResponseVariable(e,t){this._context=_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},this._context),{variables:this._context.variables.map(r=>r.identifier!==e?r:_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},r),{value:t}))}),this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:t})}updateOutcomeVariable(e,t){var s;let r=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context=_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},this._context),{variables:this._context.variables.map(o=>o.identifier!==e?o:_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},o),{value:r.cardinality==="single"?t:[...o.value,t]}))}),this._feedbackElements.forEach(o=>o.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:(s=this._context.variables.find(o=>o.identifier===e))==null?void 0:s.value})}_getCompletionStatus(){return this._interactionElements.every(e=>e.validate())?"completed":this._interactionElements.some(e=>e.validate())?"incomplete":"not_attempted"}_emit(e,t=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],A.prototype,"title",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],A.prototype,"identifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],A.prototype,"adaptive",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],A.prototype,"timeDependent",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean})],A.prototype,"disabled",2),_chunk6G76D2MIcjs.c.call(void 0, [y("disabled",{waitUntilFirstUpdate:!0})],A.prototype,"_handleDisabledChange",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean})],A.prototype,"readonly",2),_chunk6G76D2MIcjs.c.call(void 0, [y("readonly",{waitUntilFirstUpdate:!0})],A.prototype,"_handleReadonlyChange",2),_chunk6G76D2MIcjs.c.call(void 0, [_context2.provide.call(void 0, {context:P}),_decoratorsjs.property.call(void 0, {attribute:!1})],A.prototype,"_context",2),A= exports.QtiAssessmentItem =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-assessment-item")],A);var _statichtmljs = require('lit/static-html.js');var Mr={SPACE:32},_= exports.QtiChoice =class extends _lit.LitElement{constructor(){super(...arguments);this.tabindex=0;this.disabled=!1;this.readonly=!1;this.checked=!1}handleDisabledChange(e,t){t?(this.tabindex=void 0,this.blur()):this.tabIndex=0}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent("qti-register-choice",{bubbles:!0,cancelable:!1,composed:!0}))}disconnectedCallback(){this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent("qti-loose-choice",{bubbles:!0,cancelable:!1,composed:!0}))}reset(){this.checked=!1,this.disabled=!1}_onKeyUp(e){if(!e.altKey)switch(e.keyCode){case Mr.SPACE:e.preventDefault(),this._toggleChecked();break;default:}}_onClick(){this._toggleChecked()}_toggleChecked(){this.disabled||this.readonly||(this.checked=!this.checked,this.dispatchEvent(new CustomEvent("qti-choice-element-selected",{bubbles:!0,cancelable:!1,composed:!0,detail:{identifier:this.identifier,checked:this.checked}})))}validateAllProps(){return!!this.getAttribute("identifier")}render(){return this.validateAllProps()||console.warn(`Invalid props for ${this.outerHTML}`,"missing identifier"),_statichtmljs.html` <slot></slot> `}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],_.prototype,"identifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0})],_.prototype,"tabindex",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean,attribute:"aria-disabled",converter:{toAttribute:a=>a}})],_.prototype,"disabled",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean,attribute:"aria-readonly",converter:{toAttribute:a=>a}})],_.prototype,"readonly",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean,attribute:"aria-checked",converter:{toAttribute:a=>a}})],_.prototype,"checked",2),_chunk6G76D2MIcjs.c.call(void 0, [y("disabled",{waitUntilFirstUpdate:!0})],_.prototype,"handleDisabledChange",1);var Ut=_lit.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
}
|
|
5
|
-
`;var
|
|
5
|
+
`;var z=class extends _lit.LitElement{render(){return _lit.html`<slot name="qti-rubric-block"></slot><slot></slot>`}};z.styles=Ut,z=_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-item-body")],z);var Qe=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}connectedCallback(){this.parentElement.tagName.endsWith("INTERACTION")&&this.setAttribute("slot","prompt")}};customElements.define("qti-prompt",Qe);var et=class extends _lit.LitElement{constructor(){super()}firstUpdated(e){super.firstUpdated(e);let t=this.closest("qti-assessment-item"),r=this.getAttribute("href");if(r!==null){let s=document.createElement("link");s.rel="stylesheet",s.type="text/css",s.media="screen",s.href=r,t.appendChild(s),this.styleLink=s}if(this.textContent!==null){let s=document.createElement("style");s.media="screen",s.textContent=this.textContent,t.appendChild(s),this.styleLink=s}}disconnectedCallback(){let e=this.closest("qti-assessment-item");if(this.styleLink&&this.styleLink.parentElement===this)try{e.removeChild(this.styleLink)}catch(t){console.log("could not remove stylesheet")}}};customElements.define("qti-stylesheet",et);var F=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}defaultValues(i){let e=Array.from(this.querySelectorAll("qti-default-value > qti-value"));if(e.length===0)return null;let t=e.map(r=>r.innerHTML);return t.length>1||i.cardinality==="multiple"||i.cardinality==="ordered"?t:t[0]}};customElements.define("qti-variabledeclaration",F);var D=class extends F{render(){var t,r;let e=(r=(t=this.itemContext)==null?void 0:t.variables.find(s=>s.identifier===this.identifier))==null?void 0:r.value;return _lit.html`${JSON.stringify(e,null,2)}`}get interpolationTable(){let e=this.querySelector("qti-interpolation-table");if(e){let t=new Map;for(let r of e.querySelectorAll("qti-interpolation-table-entry")){!r.getAttribute("source-value")&&r.getAttribute("target-value")&&console.error("source-value or target-value is missing in qti-interpolation-table-entry");let s=parseInt(r.getAttribute("source-value")),o=parseInt(r.getAttribute("target-value"));(isNaN(s)||isNaN(o))&&console.error("source-value or target-value is not a number in qti-interpolation-table-entry"),t.set(s,o)}return t}return null}connectedCallback(){super.connectedCallback();let e={identifier:this.identifier,cardinality:this.cardinality,baseType:this.baseType,type:"outcome",value:null,interpolationTable:this.interpolationTable};e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}};D.styles=[_lit.css`
|
|
6
|
+
:host {
|
|
7
|
+
display: none;
|
|
8
|
+
}
|
|
9
|
+
`],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"base-type"})],D.prototype,"baseType",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],D.prototype,"identifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],D.prototype,"cardinality",2),_chunk6G76D2MIcjs.c.call(void 0, [_context2.consume.call(void 0, {context:P,subscribe:!0}),_decoratorsjs.state.call(void 0, )],D.prototype,"itemContext",2);customElements.define("qti-outcome-declaration",D);var W=globalThis,xe=W.trustedTypes,It=xe?xe.createPolicy("lit-html",{createHTML:a=>a}):void 0,zt="$lit$",O=`lit$${(Math.random()+"").slice(9)}$`,Wt="?"+O,Kr=`<${Wt}>`,B=W.document===void 0?{createTreeWalker:()=>({})}:document,Ee=()=>B.createComment(""),ce=a=>a===null||typeof a!="object"&&typeof a!="function",Jt=Array.isArray,zr=a=>Jt(a)||typeof(a==null?void 0:a[Symbol.iterator])=="function",rt=`[
|
|
10
|
+
\f\r]`,le=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ft=/-->/g,Xt=/>/g,X=RegExp(`>|${rt}(?:([^\\s"'>=/]+)(${rt}*=${rt}*(?:[^
|
|
11
|
+
\f\r"'\`<>=]|("|')|))|$)`,"g"),Yt=/'/g,Bt=/"/g,Zt=/^(?:script|style|textarea|title)$/i,Gt=a=>(i,...e)=>({_$litType$:a,strings:i,values:e}),Qt=Gt(1),mn=Gt(2),pe=Symbol.for("lit-noChange"),x=Symbol.for("lit-nothing"),jt=new WeakMap,Y=B.createTreeWalker(B,129);function er(a,i){if(!Array.isArray(a)||!a.hasOwnProperty("raw"))throw Error("invalid template strings array");return It!==void 0?It.createHTML(i):i}var Wr=(a,i)=>{let e=a.length-1,t=[],r,s=i===2?"<svg>":"",o=le;for(let c=0;c<e;c++){let l=a[c],p,d,u=-1,b=0;for(;b<l.length&&(o.lastIndex=b,d=o.exec(l),d!==null);)b=o.lastIndex,o===le?d[1]==="!--"?o=Ft:d[1]!==void 0?o=Xt:d[2]!==void 0?(Zt.test(d[2])&&(r=RegExp("</"+d[2],"g")),o=X):d[3]!==void 0&&(o=X):o===X?d[0]===">"?(o=r!=null?r:le,u=-1):d[1]===void 0?u=-2:(u=o.lastIndex-d[2].length,p=d[1],o=d[3]===void 0?X:d[3]==='"'?Bt:Yt):o===Bt||o===Yt?o=X:o===Ft||o===Xt?o=le:(o=X,r=void 0);let h=o===X&&a[c+1].startsWith("/>")?" ":"";s+=o===le?l+Kr:u>=0?(t.push(p),l.slice(0,u)+zt+l.slice(u)+O+h):l+O+(u===-2?c:h)}return[er(a,s+(a[e]||"<?>")+(i===2?"</svg>":"")),t]},de=class a{constructor({strings:i,_$litType$:e},t){let r;this.parts=[];let s=0,o=0,c=i.length-1,l=this.parts,[p,d]=Wr(i,e);if(this.el=a.createElement(p,t),Y.currentNode=this.el.content,e===2){let u=this.el.content.firstChild;u.replaceWith(...u.childNodes)}for(;(r=Y.nextNode())!==null&&l.length<c;){if(r.nodeType===1){if(r.hasAttributes())for(let u of r.getAttributeNames())if(u.endsWith(zt)){let b=d[o++],h=r.getAttribute(u).split(O),T=/([.?@])?(.*)/.exec(b);l.push({type:1,index:s,name:T[2],strings:h,ctor:T[1]==="."?ot:T[1]==="?"?nt:T[1]==="@"?at:Z}),r.removeAttribute(u)}else u.startsWith(O)&&(l.push({type:6,index:s}),r.removeAttribute(u));if(Zt.test(r.tagName)){let u=r.textContent.split(O),b=u.length-1;if(b>0){r.textContent=xe?xe.emptyScript:"";for(let h=0;h<b;h++)r.append(u[h],Ee()),Y.nextNode(),l.push({type:2,index:++s});r.append(u[b],Ee())}}}else if(r.nodeType===8)if(r.data===Wt)l.push({type:2,index:s});else{let u=-1;for(;(u=r.data.indexOf(O,u+1))!==-1;)l.push({type:7,index:s}),u+=O.length-1}s++}}static createElement(i,e){let t=B.createElement("template");return t.innerHTML=i,t}};function J(a,i,e=a,t){var o,c,l;if(i===pe)return i;let r=t!==void 0?(o=e._$Co)==null?void 0:o[t]:e._$Cl,s=ce(i)?void 0:i._$litDirective$;return(r==null?void 0:r.constructor)!==s&&((c=r==null?void 0:r._$AO)==null||c.call(r,!1),s===void 0?r=void 0:(r=new s(a),r._$AT(a,e,t)),t!==void 0?((l=e._$Co)!=null?l:e._$Co=[])[t]=r:e._$Cl=r),r!==void 0&&(i=J(a,r._$AS(a,i.values),r,t)),i}var st=class{constructor(i,e){this._$AV=[],this._$AN=void 0,this._$AD=i,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(i){var p;let{el:{content:e},parts:t}=this._$AD,r=((p=i==null?void 0:i.creationScope)!=null?p:B).importNode(e,!0);Y.currentNode=r;let s=Y.nextNode(),o=0,c=0,l=t[0];for(;l!==void 0;){if(o===l.index){let d;l.type===2?d=new _e(s,s.nextSibling,this,i):l.type===1?d=new l.ctor(s,l.name,l.strings,this,i):l.type===6&&(d=new lt(s,this,i)),this._$AV.push(d),l=t[++c]}o!==(l==null?void 0:l.index)&&(s=Y.nextNode(),o++)}return Y.currentNode=B,r}p(i){let e=0;for(let t of this._$AV)t!==void 0&&(t.strings!==void 0?(t._$AI(i,t,e),e+=t.strings.length-2):t._$AI(i[e])),e++}},_e=class a{get _$AU(){var i,e;return(e=(i=this._$AM)==null?void 0:i._$AU)!=null?e:this._$Cv}constructor(i,e,t,r){var s;this.type=2,this._$AH=x,this._$AN=void 0,this._$AA=i,this._$AB=e,this._$AM=t,this.options=r,this._$Cv=(s=r==null?void 0:r.isConnected)!=null?s:!0}get parentNode(){let i=this._$AA.parentNode,e=this._$AM;return e!==void 0&&(i==null?void 0:i.nodeType)===11&&(i=e.parentNode),i}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(i,e=this){i=J(this,i,e),ce(i)?i===x||i==null||i===""?(this._$AH!==x&&this._$AR(),this._$AH=x):i!==this._$AH&&i!==pe&&this._(i):i._$litType$!==void 0?this.g(i):i.nodeType!==void 0?this.$(i):zr(i)?this.T(i):this._(i)}k(i){return this._$AA.parentNode.insertBefore(i,this._$AB)}$(i){this._$AH!==i&&(this._$AR(),this._$AH=this.k(i))}_(i){this._$AH!==x&&ce(this._$AH)?this._$AA.nextSibling.data=i:this.$(B.createTextNode(i)),this._$AH=i}g(i){var s;let{values:e,_$litType$:t}=i,r=typeof t=="number"?this._$AC(i):(t.el===void 0&&(t.el=de.createElement(er(t.h,t.h[0]),this.options)),t);if(((s=this._$AH)==null?void 0:s._$AD)===r)this._$AH.p(e);else{let o=new st(r,this),c=o.u(this.options);o.p(e),this.$(c),this._$AH=o}}_$AC(i){let e=jt.get(i.strings);return e===void 0&&jt.set(i.strings,e=new de(i)),e}T(i){Jt(this._$AH)||(this._$AH=[],this._$AR());let e=this._$AH,t,r=0;for(let s of i)r===e.length?e.push(t=new a(this.k(Ee()),this.k(Ee()),this,this.options)):t=e[r],t._$AI(s),r++;r<e.length&&(this._$AR(t&&t._$AB.nextSibling,r),e.length=r)}_$AR(i=this._$AA.nextSibling,e){var t;for((t=this._$AP)==null?void 0:t.call(this,!1,!0,e);i&&i!==this._$AB;){let r=i.nextSibling;i.remove(),i=r}}setConnected(i){var e;this._$AM===void 0&&(this._$Cv=i,(e=this._$AP)==null||e.call(this,i))}},Z=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(i,e,t,r,s){this.type=1,this._$AH=x,this._$AN=void 0,this.element=i,this.name=e,this._$AM=r,this.options=s,t.length>2||t[0]!==""||t[1]!==""?(this._$AH=Array(t.length-1).fill(new String),this.strings=t):this._$AH=x}_$AI(i,e=this,t,r){let s=this.strings,o=!1;if(s===void 0)i=J(this,i,e,0),o=!ce(i)||i!==this._$AH&&i!==pe,o&&(this._$AH=i);else{let c=i,l,p;for(i=s[0],l=0;l<s.length-1;l++)p=J(this,c[t+l],e,l),p===pe&&(p=this._$AH[l]),o||(o=!ce(p)||p!==this._$AH[l]),p===x?i=x:i!==x&&(i+=(p!=null?p:"")+s[l+1]),this._$AH[l]=p}o&&!r&&this.j(i)}j(i){i===x?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,i!=null?i:"")}},ot=class extends Z{constructor(){super(...arguments),this.type=3}j(i){this.element[this.name]=i===x?void 0:i}},nt=class extends Z{constructor(){super(...arguments),this.type=4}j(i){this.element.toggleAttribute(this.name,!!i&&i!==x)}},at=class extends Z{constructor(i,e,t,r,s){super(i,e,t,r,s),this.type=5}_$AI(i,e=this){var o;if((i=(o=J(this,i,e,0))!=null?o:x)===pe)return;let t=this._$AH,r=i===x&&t!==x||i.capture!==t.capture||i.once!==t.once||i.passive!==t.passive,s=i!==x&&(t===x||r);r&&this.element.removeEventListener(this.name,this,t),s&&this.element.addEventListener(this.name,this,i),this._$AH=i}handleEvent(i){var e,t;typeof this._$AH=="function"?this._$AH.call((t=(e=this.options)==null?void 0:e.host)!=null?t:this.element,i):this._$AH.handleEvent(i)}},lt=class{constructor(i,e,t){this.element=i,this.type=6,this._$AN=void 0,this._$AM=e,this.options=t}get _$AU(){return this._$AM._$AU}_$AI(i){J(this,i)}};var it=W.litHtmlPolyfillSupport,Kt;it==null||it(de,_e),((Kt=W.litHtmlVersions)!=null?Kt:W.litHtmlVersions=[]).push("3.0.0");var U=class extends F{render(){var t,r;let e=(r=(t=this.itemContext)==null?void 0:t.variables.find(s=>s.identifier===this.identifier))==null?void 0:r.value;return Qt`${JSON.stringify(e,null,2)}`}connectedCallback(){super.connectedCallback();let e={baseType:this.baseType,identifier:this.identifier,correctResponse:this.correctResponse,cardinality:this.cardinality||"single",mapping:this.mapping,value:null,type:"response",candidateResponse:null};e.value=this.defaultValues(e),this.dispatchEvent(new CustomEvent("qti-register-variable",{bubbles:!0,composed:!0,detail:{variable:e}}))}get correctResponse(){let e,t=this.querySelector("qti-correct-response");if(t){let r=t.querySelectorAll("qti-value");if(this.cardinality==="single"&&r.length>0)e=r[0].textContent,r[0].remove();else if(this.cardinality!=="single"){e=[];for(let s=0;s<r.length;s++)e.push(r[s].textContent),r[s].remove()}}return e}get mapping(){return this.querySelector("qti-mapping")}};U.styles=[_lit.css`
|
|
12
|
+
:host {
|
|
13
|
+
display: none;
|
|
14
|
+
}
|
|
15
|
+
`],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"base-type"})],U.prototype,"baseType",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],U.prototype,"identifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],U.prototype,"cardinality",2),_chunk6G76D2MIcjs.c.call(void 0, [_context2.consume.call(void 0, {context:P,subscribe:!0}),_decoratorsjs.state.call(void 0, )],U.prototype,"itemContext",2);customElements.define("qti-response-declaration",U);var Ce=class extends _lit.LitElement{};Ce= exports.QtiCompanionMaterialsInfo =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-companion-materials-info")],Ce);var qe=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}};qe= exports.qtiContentBody =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-content-body")],qe);var S=class extends _lit.LitElement{handleclassNamesChange(e,t){this.classNames.split(" ").forEach(s=>{switch(s){case"qti-rubric-discretionary-placement":this.setAttribute("slot","qti-rubric-block");break;case"qti-rubric-inline":this.setAttribute("slot","");break;default:break}})}render(){return _lit.html`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-rubric-block")}};S.styles=_lit.css`
|
|
16
|
+
:host {
|
|
17
|
+
display: block;
|
|
18
|
+
}
|
|
19
|
+
`,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],S.prototype,"id",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],S.prototype,"use",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],S.prototype,"view",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"class"})],S.prototype,"classNames",2),_chunk6G76D2MIcjs.c.call(void 0, [y("classNames",{waitUntilFirstUpdate:!0})],S.prototype,"handleclassNamesChange",1),S= exports.qtiRubricBlock =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-rubric-block")],S);var li=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),ue=a=>{if(typeof a=="string")return a;let i=li();return i==="."?a.toLocaleString():a.toString().replace(".","").replace(i,".")};function pt(a){return a==null}var k=class extends _lit.LitElement{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(e){let t=this.closest("qti-assessment-item").getOutcome(e);if(this.outcomeIdentifier!==e||!t)return;let r=!1;Array.isArray(t.value)?r=t.value.includes(this.identifier):r=!pt(this.identifier)&&!pt(t==null?void 0:t.value)&&this.identifier===t.value||!1,this.showFeedback(r)}showFeedback(e){this.showStatus=e&&this.showHide==="show"||!e&&this.showHide==="hide"?"on":"off"}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"show-hide"})],k.prototype,"showHide",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"outcome-identifier"})],k.prototype,"outcomeIdentifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],k.prototype,"identifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:!1})],k.prototype,"showStatus",2);var we=class extends k{render(){return _lit.html` <slot part="feedback" class="feedback ${this.showStatus}"></slot> `}firstUpdated(i){this.checkShowFeedback(this.outcomeIdentifier)}};we.styles=_lit.css`
|
|
6
20
|
:host {
|
|
7
21
|
display: block;
|
|
8
22
|
}
|
|
9
|
-
`,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],L.prototype,"id",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],L.prototype,"use",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],L.prototype,"view",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"class"})],L.prototype,"classNames",2),_chunk6G76D2MIcjs.c.call(void 0, [g("classNames",{waitUntilFirstUpdate:!0})],L.prototype,"handleclassNamesChange",1),L= exports.qtiRubricBlock =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-rubric-block")],L);var pe=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}};pe= exports.qtiContentBody =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-content-body")],pe);var xr=()=>new Intl.NumberFormat().format(.1).replace(/\d/g,""),Q=a=>{if(typeof a=="string")return a;let i=xr();return i==="."?a.toLocaleString():a.toString().replace(".","").replace(i,".")};function Ie(a){return a==null}var k=class extends _lit.LitElement{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-feedback",{bubbles:!0,composed:!0,detail:this}))}checkShowFeedback(e){let t=this.closest("qti-assessment-item").getOutcome(e);if(this.outcomeIdentifier!==e||!t)return;let r=!1;Array.isArray(t.value)?r=t.value.includes(this.identifier):r=!Ie(this.identifier)&&!Ie(t==null?void 0:t.value)&&this.identifier===t.value||!1,this.showFeedback(r)}showFeedback(e){this.showStatus=e&&this.showHide==="show"||!e&&this.showHide==="hide"?"on":"off"}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"show-hide"})],k.prototype,"showHide",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"outcome-identifier"})],k.prototype,"outcomeIdentifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],k.prototype,"identifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:!1})],k.prototype,"showStatus",2);var ue=class extends k{constructor(){super(...arguments);this.render=()=>_lit.html` <slot part="feedback" class="${this.showStatus}"></slot> `}};ue.styles=_lit.css`
|
|
10
23
|
.on {
|
|
11
|
-
display:
|
|
24
|
+
display: block;
|
|
12
25
|
}
|
|
13
26
|
.off {
|
|
14
27
|
display: none;
|
|
15
28
|
}
|
|
16
|
-
`;customElements.define("qti-feedback-
|
|
29
|
+
`;customElements.define("qti-feedback-block",we);var $e=class extends k{constructor(){super(...arguments);this.render=()=>_lit.html` <slot part="feedback" class="${this.showStatus}"></slot> `}};$e.styles=_lit.css`
|
|
17
30
|
.on {
|
|
18
31
|
display: inline-block;
|
|
19
32
|
}
|
|
20
33
|
.off {
|
|
21
34
|
display: none;
|
|
22
35
|
}
|
|
23
|
-
`;customElements.define("qti-
|
|
24
|
-
:host {
|
|
25
|
-
display: block;
|
|
26
|
-
}
|
|
36
|
+
`;customElements.define("qti-feedback-inline",$e);var Te=class extends k{constructor(){super(...arguments);this.render=()=>_lit.html` <slot part="feedback" class="${this.showStatus}"></slot> `}};Te.styles=_lit.css`
|
|
27
37
|
.on {
|
|
28
|
-
display: block;
|
|
38
|
+
display: inline-block;
|
|
29
39
|
}
|
|
30
40
|
.off {
|
|
31
41
|
display: none;
|
|
32
42
|
}
|
|
33
|
-
`;customElements.define("qti-feedback
|
|
34
|
-
:host {
|
|
35
|
-
display: inline-flex;
|
|
36
|
-
}
|
|
37
|
-
`]}render(){return _lit.html`
|
|
38
|
-
<input
|
|
39
|
-
part="input"
|
|
40
|
-
spellcheck="false"
|
|
41
|
-
autocomplete="off"
|
|
42
|
-
@keydown="${e=>e.stopImmediatePropagation()}"
|
|
43
|
-
@keyup="${this.textChanged}"
|
|
44
|
-
@change="${this.textChanged}"
|
|
45
|
-
type="${this.patternMask=="[0-9]*"?"number":"text"}"
|
|
46
|
-
placeholder="${_ifdefinedjs.ifDefined.call(void 0, this.placeholderText?this.placeholderText:void 0)}"
|
|
47
|
-
.value="${this._value}"
|
|
48
|
-
size="${this._size}"
|
|
49
|
-
pattern="${_ifdefinedjs.ifDefined.call(void 0, this.patternMask?this.patternMask:void 0)}"
|
|
50
|
-
?disabled="${this.disabled}"
|
|
51
|
-
?readonly="${this.readonly}"
|
|
52
|
-
/>
|
|
53
|
-
`}textChanged(e){if(this.disabled||this.readonly)return;let t=e.target;this.setEmptyAttribute(t.value),this._value!==t.value&&(this._value=t.value,this.saveResponse(t.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"expected-length"})],T.prototype,"expectedLength",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"pattern-mask"})],T.prototype,"patternMask",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"placeholder-text"})],T.prototype,"placeholderText",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],T.prototype,"_value",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],T.prototype,"_size",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"class"})],T.prototype,"classNames",2),_chunk6G76D2MIcjs.c.call(void 0, [g("classNames")],T.prototype,"handleclassNamesChange",1),T= exports.QtiTextEntryInteraction =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-text-entry-interaction")],T);var R=class extends h{constructor(){super(...arguments);this.textareaRef=_refjs.createRef.call(void 0, );this._value=""}handleclassNamesChange(e,t){this.classNames.split(" ").forEach(o=>{if(o.startsWith("qti-height-lines")){let 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[_lit.css`
|
|
43
|
+
`;customElements.define("qti-modal-feedback",Te);var _ifdefinedjs = require('lit/directives/if-defined.js');var g=class extends _lit.LitElement{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:e}}))}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"response-identifier"})],g.prototype,"responseIdentifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean})],g.prototype,"disabled",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {reflect:!0,type:Boolean})],g.prototype,"readonly",2);var _refjs = require('lit/directives/ref.js');var L=class extends g{constructor(){super(...arguments);this.textareaRef=_refjs.createRef.call(void 0, );this._value=""}handleclassNamesChange(e,t){this.classNames.split(" ").forEach(s=>{if(s.startsWith("qti-height-lines")){let o=s.replace("qti-height-lines-","");this.textareaRef&&(this.textareaRef.value.rows=parseInt(o))}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[_lit.css`
|
|
54
44
|
/* PK: display host as block, else design will be collapsed */
|
|
55
45
|
:host {
|
|
56
46
|
display: block;
|
|
@@ -75,7 +65,27 @@
|
|
|
75
65
|
?disabled="${this.disabled}"
|
|
76
66
|
?readonly="${this.readonly}"
|
|
77
67
|
.value=${this._value}
|
|
78
|
-
></textarea>`}textChanged(e){if(this.disabled||this.readonly)return;let t=e.target;this.setEmptyAttribute(t.value),this._value!==t.value&&(this._value=t.value,this.saveResponse(t.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"expected-length"})],
|
|
68
|
+
></textarea>`}textChanged(e){if(this.disabled||this.readonly)return;let t=e.target;this.setEmptyAttribute(t.value),this._value!==t.value&&(this._value=t.value,this.saveResponse(t.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"expected-length"})],L.prototype,"expectedLength",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"pattern-mask"})],L.prototype,"patternMask",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"placeholder-text"})],L.prototype,"placeholderText",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],L.prototype,"_value",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"class"})],L.prototype,"classNames",2),_chunk6G76D2MIcjs.c.call(void 0, [y("classNames",{waitUntilFirstUpdate:!0})],L.prototype,"handleclassNamesChange",1),L= exports.QtiExtendedTextInteraction =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-extended-text-interaction")],L);function tr(a,i){let e,t=_chunk6G76D2MIcjs.a.call(void 0, {},i);return(r,s)=>{let{connectedCallback:o,disconnectedCallback:c}=r;r.connectedCallback=function(){var d;o.call(this);let l=u=>{let b=Array.from(this.querySelectorAll(a));for(let h of u){let T=Array.from(h.addedNodes).map(N=>N),v=Array.from(h.addedNodes).map(N=>N);h.type==="childList"&&T.find(N=>b.includes(N))&&this[s](T,v)}};e=new MutationObserver(l),e.observe(this,{childList:!0,subtree:!0});let p=(d=this.querySelectorAll(a))!=null?d:[];this[s](Array.from(p),[])},r.disconnectedCallback=function(){c.call(this),e.disconnect()}}}var R=class extends g{constructor(){super(...arguments);this._value="";this._size=5;this.inputRef=_refjs.createRef.call(void 0, )}handleclassNamesChange(e,t){t.split(" ").forEach(s=>{if(s.startsWith("qti-input-width")){let o=s.replace("qti-input-width-","");this._size=parseInt(o)}})}set response(e){this._value=e!==void 0?e:""}validate(){return this._value!==""}static get styles(){return[_lit.css`
|
|
69
|
+
:host {
|
|
70
|
+
display: inline-flex;
|
|
71
|
+
}
|
|
72
|
+
`]}render(){return _lit.html`
|
|
73
|
+
<input
|
|
74
|
+
part="input"
|
|
75
|
+
spellcheck="false"
|
|
76
|
+
autocomplete="off"
|
|
77
|
+
@keydown="${e=>e.stopImmediatePropagation()}"
|
|
78
|
+
@keyup="${this.textChanged}"
|
|
79
|
+
@change="${this.textChanged}"
|
|
80
|
+
type="${this.patternMask=="[0-9]*"?"number":"text"}"
|
|
81
|
+
placeholder="${_ifdefinedjs.ifDefined.call(void 0, this.placeholderText?this.placeholderText:void 0)}"
|
|
82
|
+
.value="${this._value}"
|
|
83
|
+
size="${this._size}"
|
|
84
|
+
pattern="${_ifdefinedjs.ifDefined.call(void 0, this.patternMask?this.patternMask:void 0)}"
|
|
85
|
+
?disabled="${this.disabled}"
|
|
86
|
+
?readonly="${this.readonly}"
|
|
87
|
+
/>
|
|
88
|
+
`}textChanged(e){if(this.disabled||this.readonly)return;let t=e.target;this.setEmptyAttribute(t.value),this._value!==t.value&&(this._value=t.value,this.saveResponse(t.value))}reset(){this._value=""}setEmptyAttribute(e){this.setAttribute("empty",e===""?"true":"false")}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"expected-length"})],R.prototype,"expectedLength",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"pattern-mask"})],R.prototype,"patternMask",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"placeholder-text"})],R.prototype,"placeholderText",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],R.prototype,"_value",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],R.prototype,"_size",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"class"})],R.prototype,"classNames",2),_chunk6G76D2MIcjs.c.call(void 0, [y("classNames")],R.prototype,"handleclassNamesChange",1),R= exports.QtiTextEntryInteraction =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-text-entry-interaction")],R);var E=class extends g{constructor(){super();this._choiceElements=[];this.minChoices=0;this.maxChoices=1;this._handleDisabledChange=(e,t)=>this._choiceElements.forEach(r=>r.disabled=t);this._handleReadonlyChange=(e,t)=>this._choiceElements.forEach(r=>r.readonly=t);this._handleMaxChoicesChange=()=>this._determineInputType();this.addEventListener("qti-register-choice",this._registerChoiceElement),this.addEventListener("qti-loose-choice",this._looseChoiceElement)}validate(){return this._choiceElements.reduce((t,r)=>t+(r.checked?1:0),0)>=this.minChoices}set response(e){let t=Array.isArray(e)?e:[e];this._choiceElements.forEach(r=>{r.checked=!!t.find(s=>s===r.identifier)})}set correctResponse(e){let t=Array.isArray(e)?e:[e];if(e==""){this._choiceElements.forEach(r=>{r.removeAttribute("data-correct-response")});return}this._choiceElements.forEach(r=>{r.setAttribute("data-correct-response",t.find(s=>s===r.identifier)?"true":"false")})}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-choice-element-selected",this._choiceElementSelectedHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-choice-element-selected",this._choiceElementSelectedHandler),this.removeEventListener("qti-register-choice",this._registerChoiceElement)}_registerChoiceElement(e){e.stopPropagation();let t=e.target;this._choiceElements.push(t),this._setInputType(t)}_looseChoiceElement(e){e.stopPropagation();let t=e.target;this._choiceElements.push(t),this._choiceElements=this._choiceElements.filter(r=>r!==t)}_determineInputType(){this._choiceElements.forEach(e=>{this._setInputType(e)})}_setInputType(e){this.maxChoices===1?e.setAttribute("role","radio"):e.setAttribute("role","checkbox")}_choiceElementSelectedHandler(e){this.maxChoices===1&&this._choiceElements.filter(t=>t.identifier!==e.detail.identifier).forEach(t=>{t.checked=!1}),this._choiceElementSelected()}_choiceElementSelected(){let e=this._choiceElements.filter(r=>r.checked).map(r=>r.identifier);this.maxChoices>1&&(this.maxChoices===e.length?this._choiceElements.forEach(r=>r.disabled=!r.checked):this._choiceElements.forEach(r=>r.disabled=!1));let t;this.maxChoices===1?t=e.length>0?e[0]:void 0:t=e,this.saveResponse(t)}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"min-choices"})],E.prototype,"minChoices",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"max-choices"})],E.prototype,"maxChoices",2),_chunk6G76D2MIcjs.c.call(void 0, [y("disabled",{waitUntilFirstUpdate:!0})],E.prototype,"_handleDisabledChange",2),_chunk6G76D2MIcjs.c.call(void 0, [y("readonly",{waitUntilFirstUpdate:!0})],E.prototype,"_handleReadonlyChange",2),_chunk6G76D2MIcjs.c.call(void 0, [y("maxChoices",{waitUntilFirstUpdate:!0})],E.prototype,"_handleMaxChoicesChange",2);var mt=class extends E{constructor(){super(...arguments);this.render=()=>_lit.html`<slot></slot>`}connectedCallback(){super.connectedCallback(),this.setAttribute("qti-hottext-interaction","")}};customElements.define("qti-hottext-interaction",mt);var _unsafehtmljs = require('lit/directives/unsafe-html.js');var j=class extends g{constructor(){super(...arguments);this.options=[];this.correctOption="";this.dataPrompt="select"}static get styles(){return[_lit.css`
|
|
79
89
|
:host {
|
|
80
90
|
display: inline-block;
|
|
81
91
|
}
|
|
@@ -87,13 +97,13 @@
|
|
|
87
97
|
</select>
|
|
88
98
|
|
|
89
99
|
${_unsafehtmljs.unsafeHTML.call(void 0, this.correctOption)}
|
|
90
|
-
`}firstUpdated(e){super.firstUpdated(e),this.addEventListener("on-dropdown-selected",this.choiceSelected);let t=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...t.map(r=>({textContent:r.innerHTML,value:r.getAttribute("identifier"),selected:!1}))]}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},e),{selected:t===0}))}set response(e){this.options=this.options.map(t=>(e===t.value&&(t.selected=!0),t))}set correctResponse(e){if(e===""){this.correctOption="";return}console.log("correctResponse",e),this.correctOption=`<span part="correct-option">${this.options.find(t=>e===t.value).textContent}</span>`}choiceSelected(e){let t=e.target.value;this.options=this.options.map(r=>_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},r),{selected:r.value===t})),this.saveResponse(t)}};
|
|
100
|
+
`}firstUpdated(e){super.firstUpdated(e),this.addEventListener("on-dropdown-selected",this.choiceSelected);let t=Array.from(this.querySelectorAll("qti-inline-choice"));this.options=[{textContent:this.dataPrompt,value:"",selected:!1},...t.map(r=>({textContent:r.innerHTML,value:r.getAttribute("identifier"),selected:!1}))]}validate(){let e=this.options.find(t=>t.selected);return e?e.value!=="":!1}reset(){this.options=this.options.map((e,t)=>_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},e),{selected:t===0}))}set response(e){this.options=this.options.map(t=>(e===t.value&&(t.selected=!0),t))}set correctResponse(e){if(e===""){this.correctOption="";return}console.log("correctResponse",e),this.correctOption=`<span part="correct-option">${this.options.find(t=>e===t.value).textContent}</span>`}choiceSelected(e){let t=e.target.value;this.options=this.options.map(r=>_chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},r),{selected:r.value===t})),this.saveResponse(t)}};j.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"],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],j.prototype,"options",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],j.prototype,"correctOption",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"data-prompt",type:String})],j.prototype,"dataPrompt",2);customElements.define("qti-inline-choice-interaction",j);var lr=_lit.css`
|
|
91
101
|
:host {
|
|
92
102
|
display: flex;
|
|
93
103
|
flex-direction: column;
|
|
94
104
|
// align-items: flex-start;
|
|
95
105
|
}
|
|
96
|
-
`;var
|
|
106
|
+
`;var G=class extends E{render(){return _lit.html` <slot name="prompt"></slot><slot part="slot"></slot>`}};G.styles=lr,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],G.prototype,"orientation",2),G= exports.QtiChoiceInteraction =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-choice-interaction")],G);var cr=`<qti-response-processing>
|
|
97
107
|
<qti-response-condition>
|
|
98
108
|
<qti-response-if>
|
|
99
109
|
<qti-match>
|
|
@@ -110,7 +120,7 @@
|
|
|
110
120
|
</qti-set-outcome-value>
|
|
111
121
|
</qti-response-else>
|
|
112
122
|
</qti-response-condition>
|
|
113
|
-
</qti-response-processing>`,
|
|
123
|
+
</qti-response-processing>`,pr=`<qti-response-processing>
|
|
114
124
|
<qti-response-condition>
|
|
115
125
|
<qti-response-if>
|
|
116
126
|
<qti-is-null>
|
|
@@ -126,7 +136,7 @@
|
|
|
126
136
|
</qti-set-outcome-value>
|
|
127
137
|
</qti-response-else>
|
|
128
138
|
</qti-response-condition>
|
|
129
|
-
</qti-response-processing>`,
|
|
139
|
+
</qti-response-processing>`,dr=`<qti-response-processing>
|
|
130
140
|
<qti-response-condition>
|
|
131
141
|
<qti-response-if>
|
|
132
142
|
<qti-is-null>
|
|
@@ -142,29 +152,20 @@
|
|
|
142
152
|
</qti-set-outcome-value>
|
|
143
153
|
</qti-response-else>
|
|
144
154
|
</qti-response-condition>
|
|
145
|
-
</qti-response-processing>`;var
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
display:
|
|
149
|
-
}
|
|
150
|
-
[role='alert'] {
|
|
151
|
-
border: 1px solid red;
|
|
152
|
-
background: pink;
|
|
153
|
-
color: red;
|
|
154
|
-
padding: 0.5rem 0.25rem;
|
|
155
|
-
font-size: small;
|
|
156
|
-
border-radius: 5px;
|
|
157
|
-
margin-bottom: 3px;
|
|
155
|
+
</qti-response-processing>`;var Q=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}static get observedAttributes(){return["identifier"]}process(){let i=[...this.children];for(let e of i)e.process()}firstUpdated(i){if(this.getAttribute("template")){let e=this.getAttribute("template").split("/"),t=e[e.length-1].replace(".xml","");switch(this.innerHTML="",t){case"map_response":{this.appendChild(this.fragmentFromString(pr).firstElementChild.firstElementChild);break}case"map_response_point":{this.appendChild(this.fragmentFromString(dr).firstElementChild.firstElementChild);break}case"match_correct":this.appendChild(this.fragmentFromString(cr).firstElementChild.firstElementChild);break}}}fragmentFromString(i){return document.createRange().createContextualFragment(i)}};Q= exports.QtiResponseProcessing =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-response-processing")],Q);var M=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}process(){throw new Error("Not implemented")}};M= exports.QtiRule =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-rule")],M);var Le=class extends M{get childExpression(){return this.firstElementChild}process(){let e=this.getAttribute("identifier"),t=this.closest("qti-assessment-item").getVariable(e),r;return t.interpolationTable&&(r=t.interpolationTable.get(parseInt(this.childExpression.calculate()))),r?(this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:this.identifier,value:ue(r)}})),r):(console.warn("lookupOutcomeValue: value is null or undefined"),0)}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],Le.prototype,"identifier",2);customElements.define("qti-lookup-outcome-value",Le);var ht=class extends M{render(){return _lit.html`<slot></slot>`}process(){let i=[...this.children];for(let e=0;e<i.length;e++){let t=i[e];if(t.calculate()){t.process();return}}}};customElements.define("qti-response-condition",ht);var ft=class extends M{process(){let i=this.getAttribute("identifier"),e=this.firstElementChild,t=e?e.calculate():null;if(t==null){console.warn("setOutcomeValue: value is null or undefined");return}this.dispatchEvent(new CustomEvent("qti-set-outcome-value",{bubbles:!0,composed:!0,detail:{outcomeIdentifier:i,value:Array.isArray(t)?t.map(r=>ue(r)):ue(t)}}))}};customElements.define("qti-set-outcome-value",ft);var me=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}calculate(){return!0}getSubRules(){return[...this.children]}process(){let i=this.getSubRules();for(let e=0;e<i.length;e++)i[e].process()}};customElements.define("qti-response-else",me);var he=class extends me{calculate(){return this.firstElementChild.calculate()}getSubRules(){let i=[];for(let e=1;e<this.children.length;e++)i.push(this.children[e]);return i}};customElements.define("qti-response-if",he);var gt=class extends he{render(){return _lit.html`${super.render()}`}};customElements.define("qti-response-else-if",gt);var m=class extends _lit.LitElement{constructor(){super(...arguments);this.getVariables=()=>Array.from(this.children).map(e=>{switch(e.tagName.toLowerCase()){case"qti-base-value":return{baseType:e.getAttribute("base-type"),value:e.textContent,cardinality:"single"};case"qti-variable":{let t=e.getAttribute("identifier")||"";return this.assessmentItem.getVariable(t)}case"qti-multiple":{let r=e.getResult();return r.length>0?{identifier:"",baseType:r[0].baseType,value:r.map(s=>s.value),cardinality:"multiple",type:"response"}:null}case"qti-correct":{let t=e.getAttribute("identifier")||"",r=this.assessmentItem.getResponse(t);return{baseType:r.baseType,value:r.correctResponse,cardinality:r.cardinality}}default:{try{return{baseType:"integer",value:e.getResult().toString(),cardinality:"single"}}catch(t){console.warn("default not sufficient")}return null}}}).filter(e=>e!==null)}render(){return _lit.html`<pre>${JSON.stringify(this.result,null,2)}</pre>
|
|
156
|
+
<slot></slot>`}calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}get assessmentItem(){return this.closest("qti-assessment-item")}};m.styles=_lit.css`
|
|
157
|
+
slot {
|
|
158
|
+
display: none;
|
|
158
159
|
}
|
|
159
|
-
`,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],u.prototype,"_result",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],u.prototype,"error",1);var A=class extends u{calculate(){throw new Error("Not implemented")}};var ve=class extends ni(A){calculate(){return this.calculateChildren(Array.from(this.children))}};function ni(a){return class extends a{calculateChildren(e){return e.map(r=>{let o=r;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(r=>typeof r=="boolean"&&r)}}}customElements.define("qti-and",ve);var ye=class extends u{constructor(){super(...arguments);this.baseType="string"}calculate(){return this.textContent}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"base-type"})],ye.prototype,"baseType",2);customElements.define("qti-base-value",ye);var Je=class extends A{calculate(){let i=this.getVariables();if(this.children.length===2){let e=i[0],t=i[1];if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="multiple"){let r=e.value,o=t.value;return r.filter(c=>o.includes(c)).length>0}else if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="single"){let r=e.value;return t.value.includes(r)}else console.error("unsupported baseType or cardinality in qti contains, only baseType: directedPair and cardinality: multiple is supported")}else console.error("unexpected number of children in qti contains");return!1}};customElements.define("qti-contains",Je);var Ze=class extends u{get interpretation(){return this.getAttribute("interpretation")||""}calculate(){let i=this.getAttribute("identifier")||"",e=this.closest("qti-assessment-item").getResponse(i);return e.correctResponse,e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",Ze);var xe=class extends u{constructor(){super(...arguments);this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let t=parseInt(this.getAttribute("figures")||"0");return isNaN(t)?(console.error("figures attribute is not a number"),null):t<0?(console.error("figures attribute is negative"),null):t<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):t}calculate(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(this.roundingMode===null)return null;if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti equal"),!1;switch(e[0].baseType){case"integer":case"float":{let o=parseFloat(t.value),n=parseFloat(r.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}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],xe.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",xe);var w=class{static compareSingleValues(i,e,t){switch(t){case"identifier":case"string":return i===e;case"integer":{let r=parseInt(i,10),o=parseInt(e,10);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`Cannot convert ${i} and/or ${e} to int.`);break}case"float":{let r=parseFloat(i),o=parseFloat(e);if(!isNaN(r)&&!isNaN(o))return r===o;console.error(`couldn't convert ${i} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=i.split(" ").sort(),o=e.split(" ").sort();if(r.length===2&&o.length===2)return t==="pair"&&(r.sort(),o.sort()),r.join(" ")===o.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${i} 2: ${e}`);break}}return!1}};var Ee=class extends u{constructor(){super(...arguments);this.toleranceMode="exact"}calculate(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):w.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],Ee.prototype,"toleranceMode",2);customElements.define("qti-equal",Ee);var Ge=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value>+t.value;console.error("unexpected baseType or cardinality in qti gt")}return console.error("unexpected number of children in qt"),null}};customElements.define("qti-gt",Ge);var Qe=class extends A{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value>=+t.value:(console.error("unexpected baseType or cardinality in qti gte"),null)}return console.log("unexpected number of children in qte"),null}};customElements.define("qti-gte",Qe);var et=class extends u{calculate(){if(this.children.length===1){let i=this.getVariables();if(!i)return!0;let e=i[0].value;return e==null||e==null||e===""}return console.error("unexpected number of children in qti Null"),null}};customElements.define("qti-is-null",et);var tt=class extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value<+t.value;console.error("unexpected baseType or cardinality in qti lt")}return console.error("unexpected number of children in lt"),null}};customElements.define("qti-lt",tt);var rt=class extends A{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value<=+t.value:(console.error("unexpected baseType or cardinality in qti lte"),null)}return console.log("unexpected number of children in lte"),null}};customElements.define("qti-lte",rt);var qe=class extends u{calculate(){let e=this.assessmentItem.getResponse(this.identifier);if(!e)return console.warn(`Response ${this.identifier} can not be found`),null;let t=e.mapping,r=Array.isArray(e.value)?e.value:[e.value],o=0;for(let n of r){let l=t.mapEntries.find(c=>w.compareSingleValues(c.mapKey,n,e.baseType));l==null||l.mappedValue==null?o+=t.defaultValue:o+=l.mappedValue}return t.lowerBound!=null&&(o=Math.max(t.lowerBound,o)),t.upperBound!=null&&(o=Math.min(t.upperBound,o)),o}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],qe.prototype,"identifier",2);customElements.define("qti-map-response",qe);var B=class extends _lit.LitElement{constructor(){super(...arguments);this.defaultValue=0}get mapEntries(){return Array.from(this.querySelectorAll("qti-map-entry")).map(e=>({mapKey:e.getAttribute("map-key"),mappedValue:+e.getAttribute("mapped-value")}))}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"default-value",type:Number})],B.prototype,"defaultValue",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"lower-bound",type:Number})],B.prototype,"lowerBound",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"upper-bound",type:Number})],B.prototype,"upperBound",2);customElements.define("qti-mapping",B);var st=class a extends u{calculate(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return this._result=a.match(e,t),this._result}return console.error("unexpected number of children in match"),null}static match(i,e){var t;if(e.cardinality==="single")return i.value===null?!1:Array.isArray(i.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):w.compareSingleValues((t=i.value)==null?void 0:t.toString(),e.value.toString(),e.baseType);{if(!Array.isArray(i.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(i.value.length!==e.value.length)return!1;let r=0;for(let o of e.value){if(e.cardinality==="ordered"){let n=i[r];if(!w.compareSingleValues(o,n,e.baseType))return!1}else{let n=null;for(let l of i.value)if(w.compareSingleValues(o,l,e.baseType)){n=l;break}if(n!==null)i.value.splice(i.value.indexOf(n),1);else return!1}r++}return!0}}};customElements.define("qti-match",st);var ot=class extends u{calculate(){let i=this.getVariables();this.children.length!==2&&(this.error="The member operator takes two sub-expressions");let[e,t]=i;if(e.baseType!==t.baseType&&(this.error="Which must both have the same base-type"),t.cardinality==="multiple"||t.cardinality==="ordered"||(this.error="and the second must be a multiple or ordered container"),(e.baseType==="float"||t.baseType==="float")&&(this.error="The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||t.baseType==="duration")&&(this.error="It must not be used on sub-expressions with a base-type of duration"),e.value===null||t.value===null)return null;let r=e.value;return t.value.includes(r)}};customElements.define("qti-member",ot);var nt=class extends u{calculate(){let i=this.getVariables();if(i.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of i)if(e.cardinality!=="multiple"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti multiple"),[];return i}};customElements.define("qti-multiple",nt);var at=class extends u{render(){return _lit.html`${super.render()}`}calculate(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",at);var lt=class extends A{render(){return _lit.html``}calculate(){return Array.from(this.children).map(e=>{let t=e;if(!t.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=t.calculate();if(typeof r=="string")if(r==="true")r=!0;else if(r==="false")r=!1;else return console.error("unexpected value in qti-or, expected boolean"),null;return r}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",lt);var ct=class extends u{calculate(){let i=this.getVariables();if(i.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of i)if(e.cardinality!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return i}};customElements.define("qti-ordered",ct);var ie=class extends _lit.LitElement{constructor(){super();this.value="";this.closest("qti-assessment-item").addEventListener("qti-response-processed",()=>{this.value=this.calculate()})}render(){return _lit.html`${Array.isArray(this.value)?this.value.map(e=>_lit.html`${e}`):this.value}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.identifier;return e.getVariable(t).value}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],ie.prototype,"identifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],ie.prototype,"value",2);customElements.define("qti-printed-variable",ie);var pt=class extends u{calculate(){return this.getVariables().reduce((t,r)=>{if(r.baseType=="float"||r.baseType=="integer")try{return t*parseInt(r.value.toString())}catch(o){console.warn("can not convert to number")}else console.warn(`has another baseType ${r.baseType}`);return t},1)}};customElements.define("qti-product",pt);var Ce=class extends u{constructor(){super(...arguments);this.caseSensitive="true"}calculate(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti string-match"),!1;let o=this.caseSensitive==="true"?t.value:t.value.toLowerCase(),n=this.caseSensitive==="true"?r.value:r.value.toLowerCase();return w.compareSingleValues(o,n,t.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"case-sensitive"})],Ce.prototype,"caseSensitive",2);customElements.define("qti-string-match",Ce);var dt=class extends u{calculate(){return Array.from(this.children).map(e=>{let t=e;if(!t.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=t.calculate();return Number.isNaN(r)?(console.error("unexpected value in qti-sum, expected number"),null):Number(r)}).reduce((e,t)=>e+t,0)}};customElements.define("qti-sum",dt);var ut=class extends u{calculate(){let i=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariable(i).value}};customElements.define("qti-variable",ut);var mt=class extends _lit.LitElement{constructor(){super(...arguments);this._errorMessage=null}static get properties(){return{responseIdentifier:{type:String,attribute:"response-identifier"},module:{type:String,attribute:"module"},customInteractionTypeIdentifier:{type:String,attribute:"custom-interaction-type-identifier"},baseUrl:{type:String,attribute:"base-url"},_errorMessage:{type:String,state:!0}}}getTAOConfig(e){let t=e.querySelectorAll("properties"),r={},o=l=>{let c={},p=l.getAttribute("key");if(p){let d=Array.from(l.children),m=d.map(v=>v.getAttribute("key"));m.length>0&&!m.find(v=>!Number.isInteger(+v))?c[p]=d.map(v=>n(v)):c[p]=l.textContent}return c},n=l=>{if(l){let c={};for(let p of l.children)c=_chunk6G76D2MIcjs.a.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},c),o(p));return c}};for(let l of t)return l.getAttribute("key")||(r=_chunk6G76D2MIcjs.a.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},r),n(l))),r;console.log("Can not find qti-custom-interaction config")}register(e){let t=this.parentElement.tagName==="QTI-CUSTOM-INTERACTION"?"TAO":"IMS",r=t=="IMS"?this.querySelector("qti-interaction-markup"):this.querySelector("markup");r.classList.add("qti-customInteraction"),t=="TAO"&&this.querySelector("properties")&&(this.querySelector("properties").style.display="none");let o=t=="IMS"?{properties:this.dataset}:this.getTAOConfig(this);t=="IMS"?e.getInstance(r,o,void 0):e.initialize(this.customInteractionTypeIdentifier,r.firstElementChild,o),t=="TAO"&&Array.from(this.querySelectorAll("link")).map(l=>l.getAttribute("href")).forEach(l=>{let c=document.createElement("link");c.rel="stylesheet",c.type="text/css",c.media="screen",c.href=l,r.appendChild(c)})}connectedCallback(){super.connectedCallback();let e={context:this.customInteractionTypeIdentifier,baseUrl:this.baseUrl,catchError:!0};if(window.requirePaths&&window.requireShim&&(e.paths=window.requirePaths,e.shim=window.requireShim),!globalThis.require){this._errorMessage="requirejs not found, load with cdn: https://cdnjs.com/libraries/require.js";return}requirejs.config(e)(["require"],r=>{!r.defined("qtiCustomInteractionContext")&&define("qtiCustomInteractionContext",()=>({register:n=>{this.register(n)},notifyReady:()=>{}}));let o=r.defined(this.module);r([this.module],n=>{o&&this.register(n)},n=>{this._errorMessage=n})},r=>{this._errorMessage=r})}render(){return _lit.html`<slot></slot>${this._errorMessage&&_lit.html`<div style="color:red">
|
|
160
|
+
`,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],m.prototype,"result",2);var w=class extends m{calculate(){return this.result=this.getResult(),this.result}getResult(){throw new Error("Not implemented")}};var Me=class extends Wi(w){calculate(){return this.calculateChildren(Array.from(this.children))}};function Wi(a){return class extends a{calculateChildren(e){return e.map(r=>{let s=r;if(!s.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let o=s.calculate();if(typeof o=="string")if(o==="true")o=!0;else if(o==="false")o=!1;else return console.error("unexpected value in qti-and, expected boolean"),null;return o}).every(r=>typeof r=="boolean"&&r)}}}customElements.define("qti-and",Me);var He=class extends m{constructor(){super(...arguments);this.baseType="string"}getResult(){return this.textContent}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"base-type"})],He.prototype,"baseType",2);customElements.define("qti-base-value",He);var bt=class extends w{getResult(){let i=this.getVariables();if(this.children.length===2){let e=i[0],t=i[1];if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="multiple"){let r=e.value,s=t.value;return r.filter(l=>s.includes(l)).length>0}else if(e.baseType==="directedPair"&&t.baseType==="directedPair"&&e.cardinality==="single"){let r=e.value;return t.value.includes(r)}else console.error("unsupported baseType or cardinality in qti contains, only baseType: directedPair and cardinality: multiple is supported")}else console.error("unexpected number of children in qti contains");return!1}};customElements.define("qti-contains",bt);var vt=class extends m{get interpretation(){return this.getAttribute("interpretation")||""}getResult(){let i=this.getAttribute("identifier")||"",e=this.closest("qti-assessment-item").getResponse(i);return e.correctResponse,e.cardinality!=="single"?e.correctResponse.length>0?e.correctResponse[0]:"":e.correctResponse}};customElements.define("qti-correct",vt);var Ne=class extends m{constructor(){super(...arguments);this.roundingMode="significantFigures"}get figures(){if(!this.getAttribute("figures"))return console.error("figures attribute is missing"),null;let t=parseInt(this.getAttribute("figures")||"0");return isNaN(t)?(console.error("figures attribute is not a number"),null):t<0?(console.error("figures attribute is negative"),null):t<1&&this.roundingMode==="significantFigures"?(console.error("figures cannot be smaller than 1 for RoundingMode significantFigures"),null):t}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(this.roundingMode===null)return null;if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti equal"),!1;switch(e[0].baseType){case"integer":case"float":{let s=parseFloat(t.value),o=parseFloat(r.value);if(!isNaN(s)&&!isNaN(o))return this.roundingMode==="significantFigures"?s.toPrecision(this.figures)===o.toPrecision(this.figures):Math.round(s*Math.pow(10,this.figures))/Math.pow(10,this.figures)===Math.round(o*Math.pow(10,this.figures))/Math.pow(10,this.figures);console.error(`value cannot be casted to numeric value in equalRounded operator: ${s}, ${o}`);break}default:{console.error("values other than float and int cannot be used in equalRounded operator.");break}}return!1}return console.error("unexpected number of children in qti-equal-rounded"),null}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],Ne.prototype,"roundingMode",2);customElements.define("qti-equal-rounded",Ne);var $=class{static compareSingleValues(i,e,t){switch(t){case"identifier":case"string":return i===e;case"integer":{let r=parseInt(i,10),s=parseInt(e,10);if(!isNaN(r)&&!isNaN(s))return r===s;console.error(`Cannot convert ${i} and/or ${e} to int.`);break}case"float":{let r=parseFloat(i),s=parseFloat(e);if(!isNaN(r)&&!isNaN(s))return r===s;console.error(`couldn't convert ${i} and/or ${e} to float.`);break}case"pair":case"directedPair":{let r=i.split(" ").sort(),s=e.split(" ").sort();if(r.length===2&&s.length===2)return t==="pair"&&(r.sort(),s.sort()),r.join(" ")===s.join(" ");console.error(`compared two pair but one of the values does not have 2 values: 1: ${i} 2: ${e}`);break}}return!1}};var Ve=class extends m{constructor(){super(...arguments);this.toleranceMode="exact"}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];return this.toleranceMode!=="exact"?(console.error("toleranceMode is not supported yet"),!1):t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value)?(console.error("unexpected cardinality in qti equal"),!1):$.compareSingleValues(t.value,r.value,t.baseType)}return console.error("unexpected number of children in qti-equal"),null}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],Ve.prototype,"toleranceMode",2);customElements.define("qti-equal",Ve);var yt=class extends m{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value>+t.value;console.error("unexpected baseType or cardinality in qti gt")}return console.error("unexpected number of children in qt"),null}};customElements.define("qti-gt",yt);var xt=class extends w{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value>=+t.value:(console.error("unexpected baseType or cardinality in qti gte"),null)}return console.log("unexpected number of children in qte"),null}};customElements.define("qti-gte",xt);var Et=class extends m{getResult(){if(this.children.length===1){let i=this.getVariables();if(!i)return!0;let e=i[0].value;return e==null||e==null||e===""}return console.error("unexpected number of children in qti Null"),null}};customElements.define("qti-is-null",Et);var _t=class extends m{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];if(e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float"))return+e.value<+t.value;console.error("unexpected baseType or cardinality in qti lt")}return console.error("unexpected number of children in lt"),null}};customElements.define("qti-lt",_t);var Ct=class extends w{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return e.baseType===t.baseType&&(e.baseType==="integer"||e.baseType==="float")?+e.value<=+t.value:(console.error("unexpected baseType or cardinality in qti lte"),null)}return console.log("unexpected number of children in lte"),null}};customElements.define("qti-lte",Ct);var Pe=class extends m{getResult(){let e=this.assessmentItem.getResponse(this.identifier);if(!e)return console.warn(`Response ${this.identifier} can not be found`),null;let t=e.mapping,r=Array.isArray(e.value)?e.value:[e.value],s=0;for(let o of r){let c=t.mapEntries.find(l=>$.compareSingleValues(l.mapKey,o,e.baseType));c==null||c.mappedValue==null?s+=t.defaultValue:s+=c.mappedValue}return t.lowerBound!=null&&(s=Math.max(t.lowerBound,s)),t.upperBound!=null&&(s=Math.min(t.upperBound,s)),s}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],Pe.prototype,"identifier",2);customElements.define("qti-map-response",Pe);var ee=class extends _lit.LitElement{constructor(){super(...arguments);this.defaultValue=0}get mapEntries(){return Array.from(this.querySelectorAll("qti-map-entry")).map(e=>({mapKey:e.getAttribute("map-key"),mappedValue:+e.getAttribute("mapped-value")}))}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"default-value",type:Number})],ee.prototype,"defaultValue",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"lower-bound",type:Number})],ee.prototype,"lowerBound",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"upper-bound",type:Number})],ee.prototype,"upperBound",2);customElements.define("qti-mapping",ee);var At=class a extends m{getResult(){if(this.children.length===2){let i=this.getVariables(),e=i[0],t=i[1];return a.match(e,t)}return console.error("unexpected number of children in match"),null}static match(i,e){var t;if(e.cardinality==="single")return i.value===null?!1:Array.isArray(i.value)||Array.isArray(e.value)?(console.error("unexpected cardinality in qti match"),!1):$.compareSingleValues((t=i.value)==null?void 0:t.toString(),e.value.toString(),e.baseType);{if(!Array.isArray(i.value)||!Array.isArray(e.value))return console.error("unexpected cardinality in qti match"),!1;if(i.value.length!==e.value.length)return!1;let r=0;for(let s of e.value){if(e.cardinality==="ordered"){let o=i[r];if(!$.compareSingleValues(s,o,e.baseType))return!1}else{let o=null;for(let c of i.value)if($.compareSingleValues(s,c,e.baseType)){o=c;break}if(o!==null)i.value.splice(i.value.indexOf(o),1);else return!1}r++}return!0}}};customElements.define("qti-match",At);var kt=class extends m{getResult(){let i=this.getVariables();this.children.length!==2&&console.warn("The member operator takes two sub-expressions");let[e,t]=i;if(e.baseType!==t.baseType&&console.warn("Which must both have the same base-type"),t.cardinality==="multiple"||t.cardinality==="ordered"||console.warn("and the second must be a multiple or ordered container"),(e.baseType==="float"||t.baseType==="float")&&console.warn("The member operator should not be used on sub-expressions with a base-type of float"),(e.baseType==="duration"||t.baseType==="duration")&&console.warn("It must not be used on sub-expressions with a base-type of duration"),e.value===null||t.value===null)return null;let r=e.value;return t.value.includes(r)}};customElements.define("qti-member",kt);var wt=class extends m{getResult(){let i=this.getVariables();if(i.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of i)if(e.cardinality!=="multiple"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti multiple"),[];return i}};customElements.define("qti-multiple",wt);var $t=class extends m{render(){return _lit.html`${super.render()}`}getResult(){return!this.firstElementChild.calculate()}};customElements.define("qti-not",$t);var Tt=class extends w{getResult(){return Array.from(this.children).map(e=>{let t=e;if(!t.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=t.calculate();if(typeof r=="string")if(r==="true")r=!0;else if(r==="false")r=!1;else return console.error("unexpected value in qti-or, expected boolean"),null;return r}).some(e=>typeof e=="boolean"&&e)}};customElements.define("qti-or",Tt);var Rt=class extends m{getResult(){let i=this.getVariables();if(i.length===0)return console.error("unexpected number of children in qti multiple"),null;for(let e of i)if(e.cardinality!=="ordered"&&e.cardinality!=="single")return console.error("unexpected cardinality in qti ordered"),[];return i}};customElements.define("qti-ordered",Rt);var fe=class extends _lit.LitElement{render(){var t,r;let e=(r=(t=this.itemContext)==null?void 0:t.variables.find(s=>s.identifier===this.identifier))==null?void 0:r.value;return _lit.html`${JSON.stringify(e,null,2)}`}calculate(){let e=this.closest("qti-assessment-item"),t=this.identifier;return e.getVariable(t).value}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],fe.prototype,"identifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_context2.consume.call(void 0, {context:P,subscribe:!0}),_decoratorsjs.state.call(void 0, )],fe.prototype,"itemContext",2);customElements.define("qti-printed-variable",fe);var St=class extends m{getResult(){return this.getVariables().reduce((t,r)=>{if(r.baseType=="float"||r.baseType=="integer")try{return t*parseInt(r.value.toString())}catch(s){console.warn("can not convert to number")}else console.warn(`has another baseType ${r.baseType}`);return t},1)}};customElements.define("qti-product",St);var De=class extends m{constructor(){super(...arguments);this.caseSensitive="true"}getResult(){if(this.children.length===2){let e=this.getVariables(),t=e[0],r=e[1];if(t.cardinality!=="single"||r.cardinality!=="single"||Array.isArray(t.value)||Array.isArray(r.value))return console.error("unexpected cardinality in qti string-match"),!1;let s=this.caseSensitive==="true"?t.value:t.value.toLowerCase(),o=this.caseSensitive==="true"?r.value:r.value.toLowerCase();return $.compareSingleValues(s,o,t.baseType)}return console.error("unexpected number of children in qti-string-match"),null}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"case-sensitive"})],De.prototype,"caseSensitive",2);customElements.define("qti-string-match",De);var Lt=class extends m{getResult(){return Array.from(this.children).map(e=>{let t=e;if(!t.calculate)return console.error("Element doesn't implement QtiConditionExpression"),null;let r=t.calculate();return Number.isNaN(r)?(console.error("unexpected value in qti-sum, expected number"),null):Number(r)}).reduce((e,t)=>e+t,0)}};customElements.define("qti-sum",Lt);var Mt=class extends m{getResult(){let i=this.getAttribute("identifier");return this.closest("qti-assessment-item").getVariable(i).value}};customElements.define("qti-variable",Mt);var Ht=class extends _lit.LitElement{constructor(){super(...arguments);this._errorMessage=null}static get properties(){return{responseIdentifier:{type:String,attribute:"response-identifier"},module:{type:String,attribute:"module"},customInteractionTypeIdentifier:{type:String,attribute:"custom-interaction-type-identifier"},baseUrl:{type:String,attribute:"base-url"},_errorMessage:{type:String,state:!0}}}getTAOConfig(e){let t=e.querySelectorAll("properties"),r={},s=c=>{let l={},p=c.getAttribute("key");if(p){let d=Array.from(c.children),u=d.map(h=>h.getAttribute("key"));u.length>0&&!u.find(h=>!Number.isInteger(+h))?l[p]=d.map(h=>o(h)):l[p]=c.textContent}return l},o=c=>{if(c){let l={};for(let p of c.children)l=_chunk6G76D2MIcjs.a.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},l),s(p));return l}};for(let c of t)return c.getAttribute("key")||(r=_chunk6G76D2MIcjs.a.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},r),o(c))),r;console.log("Can not find qti-custom-interaction config")}register(e){let t=this.parentElement.tagName==="QTI-CUSTOM-INTERACTION"?"TAO":"IMS",r=t=="IMS"?this.querySelector("qti-interaction-markup"):this.querySelector("markup");r.classList.add("qti-customInteraction"),t=="TAO"&&this.querySelector("properties")&&(this.querySelector("properties").style.display="none");let s=t=="IMS"?{properties:this.dataset}:this.getTAOConfig(this);t=="IMS"?e.getInstance(r,s,void 0):e.initialize(this.customInteractionTypeIdentifier,r.firstElementChild,s),t=="TAO"&&Array.from(this.querySelectorAll("link")).map(c=>c.getAttribute("href")).forEach(c=>{let l=document.createElement("link");l.rel="stylesheet",l.type="text/css",l.media="screen",l.href=c,r.appendChild(l)})}connectedCallback(){super.connectedCallback();let e={context:this.customInteractionTypeIdentifier,baseUrl:this.baseUrl,catchError:!0};if(window.requirePaths&&window.requireShim&&(e.paths=window.requirePaths,e.shim=window.requireShim),!globalThis.require){this._errorMessage="requirejs not found, load with cdn: https://cdnjs.com/libraries/require.js";return}requirejs.config(e)(["require"],r=>{!r.defined("qtiCustomInteractionContext")&&define("qtiCustomInteractionContext",()=>({register:o=>{this.register(o)},notifyReady:()=>{}}));let s=r.defined(this.module);r([this.module],o=>{s&&this.register(o)},o=>{this._errorMessage=o})},r=>{this._errorMessage=r})}render(){return _lit.html`<slot></slot>${this._errorMessage&&_lit.html`<div style="color:red">
|
|
160
161
|
<h1>Error</h1>
|
|
161
162
|
${this._errorMessage}
|
|
162
|
-
</div>`}`}};customElements.define("qti-portable-custom-interaction",mt);var _e=class a{constructor(){this._touchBegin=0;this._touchDown=null;this._lastClick=0;this._canDrag=!1;this._dragSrc=null;this._dragCopy=null;this._touchEndCalled=!1;this._dragRunning=!1;this._dataTransfer={data:{},setData:function(i,e){this.data[i]=e},getData:function(i){return this.data[i]},effectAllowed:"move"};this._copyOffset={x:0,y:0};this._lastTarget=null;this._currentDropContainer=null;this._handleClick=!0;this._DBLCLICKDELAY=500;this._CONTEXTMENUDELAY=1e3;this._DRAGDELTA=5;this._COPYOPACITY=.7;this.copyStylesDragClone=!0;this.dragOnClick=!1;this._createDragCopy=(i,e)=>{if(this._dragCopy===null&&this._dragRunning){this._dragSrc.style.opacity=this._COPYOPACITY,this._dragCopy=this._dragSrc.cloneNode(!0);let t=window.getComputedStyle(this._dragSrc);if(this._dragCopy.style="",this._dragCopy.setAttribute("dragclone",""),this.copyStylesDragClone)for(let r of t)this._dragCopy.style[r]=t.getPropertyValue(r);this._calculateDragCopyPosition(e),this._dragCopy.style.top=e.clientY-this._copyOffset.y+"px",this._dragCopy.style.left=e.clientX-this._copyOffset.x+"px",this._dragCopy.style.position="fixed",this._dragCopy.style.pointerEvents="none",this._dragCopy.style.zIndex="999999",this._dragCopy=document.body.appendChild(this._dragCopy),this._dispatchEvent(this._dragSrc,"dragstart")}if(this._dragRunning){let t=this;requestAnimationFrame(function(){t._touchEndCalled||t._dragCopy===null||(t._dragCopy.style.top=e.clientY-t._copyOffset.y+"px",t._dragCopy.style.left=e.clientX-t._copyOffset.x+"px")});let r=this._findDroppable(i);r!=this._lastTarget&&(this._dispatchEvent(r,"dragenter"),this._dispatchEvent(this._lastTarget,"dragleave"),this._lastTarget=r),this._currentDropContainer=r,this._currentDropContainer&&this._dispatchEvent(r,"dragover")}};return a._instance?a._instance:(a._instance=this,document.addEventListener("touchmove",this._touchMove.bind(this),{passive:!1,capture:!1}),document.addEventListener("mousemove",this._touchMove.bind(this),{passive:!1,capture:!1}),document.addEventListener("touchend",this._touchEnd.bind(this),{passive:!1,capture:!1}),document.addEventListener("mouseup",this._touchEnd.bind(this),{passive:!1,capture:!1}),document.addEventListener("touchcancel",this._touchCancel.bind(this),{passive:!1,capture:!1}),this)}addDraggables(i){i.forEach(e=>{e.addEventListener("touchstart",this._touchStart.bind(this),{passive:!1,capture:!1}),e.addEventListener("mousedown",this._touchStart.bind(this),{passive:!1,capture:!1})})}_touchStart(i){this._touchBegin=Date.now();let{x:e,y:t}=this._getPoint(i);if(this._touchDown={x:e,y:t},this._dragSrc=i.currentTarget,this._canDrag=!0,this.dragOnClick){let r={clientX:e,clientY:t};this._dragRunning=!0,this._createDragCopy(i,r)}i.preventDefault()}_touchMove(i){if(this._canDrag&&this._dragSrc){let{x:e,y:t}=this._getPoint(i),r={clientX:e,clientY:t};this._getDelta(r)>=this._DRAGDELTA&&(this._dragRunning=!0),this._createDragCopy(i,r),i.preventDefault()}}_touchEnd(i){var e;if(this._touchEndCalled=!0,this._canDrag=!1,this._currentDropContainer)this._dispatchEvent(this._currentDropContainer,"drop"),this._dispatchEvent(this._dragSrc,"dragend");else if(this._dragRunning){let t=new CustomEvent("dragend",{bubbles:!0,cancelable:!0});t.dataTransfer={dropEffect:"none"},(e=this._dragSrc)==null||e.dispatchEvent(t)}this._reset()}_touchCancel(i){this._reset()}_findDroppable(i){let e=this._getPoint(i);return this.elementFromPoint(e.x,e.y)}elementFromPoint(i,e){let t=document.elementFromPoint(i,e);if(t){for(;t.shadowRoot;){let r=t.shadowRoot.elementFromPoint(i,e);if(r===null||r===t)break;t=r}return t}return null}_getPoint(i,e){return i&&i.touches&&(i=i.touches[0]),{x:e?i.pageX:i.clientX,y:e?i.pageY:i.clientY}}_calculateDragCopyPosition(i){let e=this._dragSrc.getBoundingClientRect();this._copyOffset.x=i.clientX-e.left,this._copyOffset.y=i.clientY-e.top}_getDelta(i){let e=Math.abs(i.clientX-this._touchDown.x),t=Math.abs(i.clientY-this._touchDown.y);return e+t}_dispatchEvent(i,e,t=!0){if(!i)return!1;let r=new CustomEvent(e,{bubbles:t,cancelable:!0});return r.dataTransfer=this._dataTransfer,i.dispatchEvent(r),r.defaultPrevented}_reset(){this._dragRunning&&(this._dragSrc.style.opacity="1.0",this._dragCopy.parentElement.removeChild(this._dragCopy)),this._dragRunning=!1,this._dragSrc=null,this._dragCopy=null,this._canDrag=!1,this._touchBegin=0,this._touchDown=null,this._lastClick=0,this._touchEndCalled=!1,this._dataTransfer={data:{},setData:function(i,e){this.data[i]=e},getData:function(i){return this.data[i]},effectAllowed:"move"},this._copyOffset={x:0,y:0},this._lastTarget=null,this._currentDropContainer=null,this._handleClick=!0}};var $t=(a,i,e)=>{class t extends a{constructor(){super(...arguments);this.disabled=!1}firstUpdated(n){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(n);let l=Array.from(i?this.shadowRoot.querySelectorAll(e):this.querySelectorAll(e));this.dragoverHandler=this.dragoverHandler.bind(this),this.dragleaveHandler=this.dragleaveHandler.bind(this),this.dragenterHandler=this.dragenterHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),l.forEach(c=>{c.setAttribute("dropzone","move"),c.addEventListener("dragleave",this.dragleaveHandler),this.attachHandler(c)});for(let c of l)this.observer=new MutationObserver(p=>{p.forEach(d=>{if(d.type==="attributes")switch(d.attributeName){case"disabled":{c.hasAttribute("disabled")?this.removeHandler(c):this.attachHandler(c);break}}})}),this.observer.observe(c,{attributes:!0})}attachHandler(n){n.addEventListener("dragover",this.dragoverHandler),n.addEventListener("dragenter",this.dragenterHandler),n.addEventListener("drop",this.dropHandler)}removeHandler(n){n.removeEventListener("dragover",this.dragoverHandler),n.removeEventListener("dragenter",this.dragenterHandler),n.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var n;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(n=this.observer)==null||n.disconnect())}dragenterHandler(n){n.preventDefault()}dragoverHandler(n){return n.preventDefault(),n.currentTarget.setAttribute("active",""),n.dataTransfer.dropEffect="move",!1}dropHandler(n){n.preventDefault();let l=n.currentTarget,c=this.querySelector(`[identifier=${n.dataTransfer.getData("text")}`),p=c||this.shadowRoot.querySelector(`[identifier=${n.dataTransfer.getData("text")}`);return l?p.parentElement.getAttribute("identifier")!==l.getAttribute("identifier")&&l.appendChild(p):console.error(`cannot find droppable, target: ${n.target?JSON.stringify(n.target):"null"}`),l.removeAttribute("active"),!1}dragleaveHandler(n){return n.preventDefault(),n.currentTarget.removeAttribute("active"),n.dataTransfer.dropEffect="none",!1}}return _chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],t.prototype,"disabled",2),t};var Nt=(a,i,e)=>{class t extends a{}return t};var M=(a,i,e,t)=>{class r extends Nt($t(a,e,t),t,i){constructor(){super(...arguments);this.draggables=new Map;this.responseIdentifier="";this.configuration={copyStylesDragClone:!0,dragCanBePlacedBack:!0,dragOnClick:!1};this.disabled=!1;this.readonly=!1;this.minAssociations=1;this.maxAssociations=1}reInitDragAndDrop(l,c){if(this.classList.contains("qti-match-tabular"))return;l.filter(d=>!this.draggables||!this.draggables.get(d)).length>0&&(this.dragDropApi.addDraggables(l),l.forEach(d=>{this.draggables.set(d,{parent:d.parentElement,index:Array.from(d.parentNode.children).indexOf(d)}),d.setAttribute("qti-draggable","true"),d.addEventListener("dragstart",m=>{m.dataTransfer.setData("text",m.currentTarget.getAttribute("identifier")),d.setAttribute("dragging","")}),d.addEventListener("dragend",m=>{if(m.preventDefault(),d.removeAttribute("over"),d.removeAttribute("dragging"),(m.dataTransfer.dropEffect==="none"||m.dataTransfer.dropEffect===void 0)&&this.configuration.dragCanBePlacedBack){let q=m.currentTarget,v=this.draggables.get(q),P=v.index<v.parent.children.length?v.index:v.parent.children.length-1,f=v.parent,V=v.parent.children[P];f.insertBefore(q,V),this.saveResponse(),this.checkMaxMatchAssociations()}m.dataTransfer.dropEffect==="move"&&(this.saveResponse(),this.checkMaxMatchAssociations())})}))}handleDragOptionsChanged(l,c){this.dragDropApi.copyStylesDragClone=c.copyStylesDragClone,this.dragDropApi.dragOnClick=c.dragOnClick}handleDisabledChange(l,c){this.draggables.forEach((p,d)=>{c?d.setAttribute("disabled",""):d.removeAttribute("disabled"),c?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}handleReadonlyChange(l,c){this.draggables.forEach((p,d)=>{c?d.setAttribute("readonly",""):d.removeAttribute("readonly"),c?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}firstUpdated(l){super.firstUpdated(l),this.droppables=Array.from(e?this.shadowRoot.querySelectorAll(t):this.querySelectorAll(t))}connectedCallback(){super.connectedCallback(),this.dragDropApi=new _e,this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,detail:this}))}reset(l=!0){this.draggables.forEach((c,p)=>{let d=c.parent.children,m=c.index<d.length?c.index:d.length;c.parent.insertBefore(p,d[m])}),l&&this.saveResponse()}checkMaxMatchAssociations(){this.droppables.forEach(l=>{let p=+(l.getAttribute("match-max")||1)<=(l.children.length||0);p?l.setAttribute("disabled",""):l.removeAttribute("disabled"),p?l.removeAttribute("dropzone"):l.setAttribute("dropzone","move")})}set response(l){this.classList.contains("qti-match-tabular")||(this.reset(!1),l!==null&&Array.isArray(l)&&l.forEach(c=>{let[p,...d]=c.split(" ").reverse();if(p){let m=this.droppables.find(q=>q.getAttribute("identifier")===p);d.forEach(q=>{let v=this.querySelector(`[identifier=${q}]`);m?v?(m.appendChild(v),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${q}`):console.error(`cannot find droppable with identifier: ${p}`)})}}))}validate(){let c=(e?Array.from(this.shadowRoot.querySelectorAll(t)):Array.from(this.querySelectorAll(t))).filter(p=>p.childElementCount>0).length;return this.minAssociations<=0||this.minAssociations<=c}saveResponse(){let l=this.droppables.map(c=>{var d;let p="";return((d=c.children)==null?void 0:d.length)>0&&(p+=Array.from(c.children).map(m=>m.getAttribute("identifier")).join(" ")+" "),p+=c.getAttribute("identifier"),p});this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:l}}))}}return _chunk6G76D2MIcjs.c.call(void 0, [Et(i)],r.prototype,"reInitDragAndDrop",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"response-identifier"})],r.prototype,"responseIdentifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:!1,type:Object})],r.prototype,"configuration",2),_chunk6G76D2MIcjs.c.call(void 0, [g("configuration")],r.prototype,"handleDragOptionsChanged",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],r.prototype,"disabled",2),_chunk6G76D2MIcjs.c.call(void 0, [g("disabled",{waitUntilFirstUpdate:!0})],r.prototype,"handleDisabledChange",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],r.prototype,"readonly",2),_chunk6G76D2MIcjs.c.call(void 0, [g("readonly",{waitUntilFirstUpdate:!0})],r.prototype,"handleReadonlyChange",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0,attribute:"min-associations"})],r.prototype,"minAssociations",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0,attribute:"max-associations"})],r.prototype,"maxAssociations",2),r};var se=class extends M(_lit.LitElement,"qti-simple-associable-choice",!0,".dl"){render(){return _lit.html` <slot name="prompt"></slot>
|
|
163
|
+
</div>`}`}};customElements.define("qti-portable-custom-interaction",Ht);var Oe=class a{constructor(){this._touchBegin=0;this._touchDown=null;this._lastClick=0;this._canDrag=!1;this._dragSrc=null;this._dragCopy=null;this._touchEndCalled=!1;this._dragRunning=!1;this._dataTransfer={data:{},setData:function(i,e){this.data[i]=e},getData:function(i){return this.data[i]},effectAllowed:"move"};this._copyOffset={x:0,y:0};this._lastTarget=null;this._currentDropContainer=null;this._handleClick=!0;this._DBLCLICKDELAY=500;this._CONTEXTMENUDELAY=1e3;this._DRAGDELTA=5;this._COPYOPACITY=.7;this.copyStylesDragClone=!0;this.dragOnClick=!1;this._createDragCopy=(i,e)=>{if(this._dragCopy===null&&this._dragRunning){this._dragSrc.style.opacity=this._COPYOPACITY,this._dragCopy=this._dragSrc.cloneNode(!0);let t=window.getComputedStyle(this._dragSrc);if(this._dragCopy.style="",this._dragCopy.setAttribute("dragclone",""),this.copyStylesDragClone)for(let r of t)this._dragCopy.style[r]=t.getPropertyValue(r);this._calculateDragCopyPosition(e),this._dragCopy.style.top=e.clientY-this._copyOffset.y+"px",this._dragCopy.style.left=e.clientX-this._copyOffset.x+"px",this._dragCopy.style.position="fixed",this._dragCopy.style.pointerEvents="none",this._dragCopy.style.zIndex="999999",this._dragCopy=document.body.appendChild(this._dragCopy),this._dispatchEvent(this._dragSrc,"dragstart")}if(this._dragRunning){let t=this;requestAnimationFrame(function(){t._touchEndCalled||t._dragCopy===null||(t._dragCopy.style.top=e.clientY-t._copyOffset.y+"px",t._dragCopy.style.left=e.clientX-t._copyOffset.x+"px")});let r=this._findDroppable(i);r!=this._lastTarget&&(this._dispatchEvent(r,"dragenter"),this._dispatchEvent(this._lastTarget,"dragleave"),this._lastTarget=r),this._currentDropContainer=r,this._currentDropContainer&&this._dispatchEvent(r,"dragover")}};return a._instance?a._instance:(a._instance=this,document.addEventListener("touchmove",this._touchMove.bind(this),{passive:!1,capture:!1}),document.addEventListener("mousemove",this._touchMove.bind(this),{passive:!1,capture:!1}),document.addEventListener("touchend",this._touchEnd.bind(this),{passive:!1,capture:!1}),document.addEventListener("mouseup",this._touchEnd.bind(this),{passive:!1,capture:!1}),document.addEventListener("touchcancel",this._touchCancel.bind(this),{passive:!1,capture:!1}),this)}addDraggables(i){i.forEach(e=>{e.addEventListener("touchstart",this._touchStart.bind(this),{passive:!1,capture:!1}),e.addEventListener("mousedown",this._touchStart.bind(this),{passive:!1,capture:!1})})}_touchStart(i){this._touchBegin=Date.now();let{x:e,y:t}=this._getPoint(i);if(this._touchDown={x:e,y:t},this._dragSrc=i.currentTarget,this._canDrag=!0,this.dragOnClick){let r={clientX:e,clientY:t};this._dragRunning=!0,this._createDragCopy(i,r)}i.preventDefault()}_touchMove(i){if(this._canDrag&&this._dragSrc){let{x:e,y:t}=this._getPoint(i),r={clientX:e,clientY:t};this._getDelta(r)>=this._DRAGDELTA&&(this._dragRunning=!0),this._createDragCopy(i,r),i.preventDefault()}}_touchEnd(i){var e;if(this._touchEndCalled=!0,this._canDrag=!1,this._currentDropContainer)this._dispatchEvent(this._currentDropContainer,"drop"),this._dispatchEvent(this._dragSrc,"dragend");else if(this._dragRunning){let t=new CustomEvent("dragend",{bubbles:!0,cancelable:!0});t.dataTransfer={dropEffect:"none"},(e=this._dragSrc)==null||e.dispatchEvent(t)}this._reset()}_touchCancel(i){this._reset()}_findDroppable(i){let e=this._getPoint(i);return this.elementFromPoint(e.x,e.y)}elementFromPoint(i,e){let t=document.elementFromPoint(i,e);if(t){for(;t.shadowRoot;){let r=t.shadowRoot.elementFromPoint(i,e);if(r===null||r===t)break;t=r}return t}return null}_getPoint(i,e){return i&&i.touches&&(i=i.touches[0]),{x:e?i.pageX:i.clientX,y:e?i.pageY:i.clientY}}_calculateDragCopyPosition(i){let e=this._dragSrc.getBoundingClientRect();this._copyOffset.x=i.clientX-e.left,this._copyOffset.y=i.clientY-e.top}_getDelta(i){let e=Math.abs(i.clientX-this._touchDown.x),t=Math.abs(i.clientY-this._touchDown.y);return e+t}_dispatchEvent(i,e,t=!0){if(!i)return!1;let r=new CustomEvent(e,{bubbles:t,cancelable:!0});return r.dataTransfer=this._dataTransfer,i.dispatchEvent(r),r.defaultPrevented}_reset(){this._dragRunning&&(this._dragSrc.style.opacity="1.0",this._dragCopy.parentElement.removeChild(this._dragCopy)),this._dragRunning=!1,this._dragSrc=null,this._dragCopy=null,this._canDrag=!1,this._touchBegin=0,this._touchDown=null,this._lastClick=0,this._touchEndCalled=!1,this._dataTransfer={data:{},setData:function(i,e){this.data[i]=e},getData:function(i){return this.data[i]},effectAllowed:"move"},this._copyOffset={x:0,y:0},this._lastTarget=null,this._currentDropContainer=null,this._handleClick=!0}};var mr=(a,i,e)=>{class t extends a{constructor(){super(...arguments);this.disabled=!1}firstUpdated(o){if(this.classList.contains("qti-match-tabular"))return;super.firstUpdated(o);let c=Array.from(i?this.shadowRoot.querySelectorAll(e):this.querySelectorAll(e));this.dragoverHandler=this.dragoverHandler.bind(this),this.dragleaveHandler=this.dragleaveHandler.bind(this),this.dragenterHandler=this.dragenterHandler.bind(this),this.dropHandler=this.dropHandler.bind(this),c.forEach(l=>{l.setAttribute("dropzone","move"),l.addEventListener("dragleave",this.dragleaveHandler),this.attachHandler(l)});for(let l of c)this.observer=new MutationObserver(p=>{p.forEach(d=>{if(d.type==="attributes")switch(d.attributeName){case"disabled":{l.hasAttribute("disabled")?this.removeHandler(l):this.attachHandler(l);break}}})}),this.observer.observe(l,{attributes:!0})}attachHandler(o){o.addEventListener("dragover",this.dragoverHandler),o.addEventListener("dragenter",this.dragenterHandler),o.addEventListener("drop",this.dropHandler)}removeHandler(o){o.removeEventListener("dragover",this.dragoverHandler),o.removeEventListener("dragenter",this.dragenterHandler),o.removeEventListener("drop",this.dropHandler)}disconnectedCallback(){var o;this.classList.contains("qti-match-tabular")||(super.disconnectedCallback(),(o=this.observer)==null||o.disconnect())}dragenterHandler(o){o.preventDefault()}dragoverHandler(o){return o.preventDefault(),o.currentTarget.setAttribute("active",""),o.dataTransfer.dropEffect="move",!1}dropHandler(o){o.preventDefault();let c=o.currentTarget,l=this.querySelector(`[identifier=${o.dataTransfer.getData("text")}`),p=l||this.shadowRoot.querySelector(`[identifier=${o.dataTransfer.getData("text")}`);return c?p.parentElement.getAttribute("identifier")!==c.getAttribute("identifier")&&c.appendChild(p):console.error(`cannot find droppable, target: ${o.target?JSON.stringify(o.target):"null"}`),c.removeAttribute("active"),!1}dragleaveHandler(o){return o.preventDefault(),o.currentTarget.removeAttribute("active"),o.dataTransfer.dropEffect="none",!1}}return _chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],t.prototype,"disabled",2),t};var hr=(a,i,e)=>{class t extends a{}return t};var H=(a,i,e,t)=>{class r extends hr(mr(a,e,t),t,i){constructor(){super(...arguments);this.draggables=new Map;this.responseIdentifier="";this.configuration={copyStylesDragClone:!0,dragCanBePlacedBack:!0,dragOnClick:!1};this.disabled=!1;this.readonly=!1;this.minAssociations=1;this.maxAssociations=1}reInitDragAndDrop(c,l){if(this.classList.contains("qti-match-tabular"))return;c.filter(d=>!this.draggables||!this.draggables.get(d)).length>0&&(this.dragDropApi.addDraggables(c),c.forEach(d=>{this.draggables.set(d,{parent:d.parentElement,index:Array.from(d.parentNode.children).indexOf(d)}),d.setAttribute("qti-draggable","true"),d.addEventListener("dragstart",u=>{u.dataTransfer.setData("text",u.currentTarget.getAttribute("identifier")),d.setAttribute("dragging","")}),d.addEventListener("dragend",u=>{if(u.preventDefault(),d.removeAttribute("over"),d.removeAttribute("dragging"),(u.dataTransfer.dropEffect==="none"||u.dataTransfer.dropEffect===void 0)&&this.configuration.dragCanBePlacedBack){let b=u.currentTarget,h=this.draggables.get(b),T=h.index<h.parent.children.length?h.index:h.parent.children.length-1,v=h.parent,N=h.parent.children[T];v.insertBefore(b,N),this.saveResponse(),this.checkMaxMatchAssociations()}u.dataTransfer.dropEffect==="move"&&(this.saveResponse(),this.checkMaxMatchAssociations())})}))}handleDragOptionsChanged(c,l){this.dragDropApi.copyStylesDragClone=l.copyStylesDragClone,this.dragDropApi.dragOnClick=l.dragOnClick}handleDisabledChange(c,l){this.draggables.forEach((p,d)=>{l?d.setAttribute("disabled",""):d.removeAttribute("disabled"),l?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}handleReadonlyChange(c,l){this.draggables.forEach((p,d)=>{l?d.setAttribute("readonly",""):d.removeAttribute("readonly"),l?d.removeAttribute("qti-draggable"):d.setAttribute("qti-draggable","true")})}firstUpdated(c){super.firstUpdated(c),this.droppables=Array.from(e?this.shadowRoot.querySelectorAll(t):this.querySelectorAll(t))}connectedCallback(){super.connectedCallback(),this.dragDropApi=new Oe,this.dispatchEvent(new CustomEvent("qti-register-interaction",{bubbles:!0,composed:!0,detail:this}))}reset(c=!0){this.draggables.forEach((l,p)=>{let d=l.parent.children,u=l.index<d.length?l.index:d.length;l.parent.insertBefore(p,d[u])}),c&&this.saveResponse()}checkMaxMatchAssociations(){this.droppables.forEach(c=>{let p=+(c.getAttribute("match-max")||1)<=(c.children.length||0);p?c.setAttribute("disabled",""):c.removeAttribute("disabled"),p?c.removeAttribute("dropzone"):c.setAttribute("dropzone","move")})}set response(c){this.classList.contains("qti-match-tabular")||(this.reset(!1),c!==null&&Array.isArray(c)&&c.forEach(l=>{let[p,...d]=l.split(" ").reverse();if(p){let u=this.droppables.find(b=>b.getAttribute("identifier")===p);d.forEach(b=>{let h=this.querySelector(`[identifier=${b}]`);u?h?(u.appendChild(h),this.checkMaxMatchAssociations()):console.error(`cannot find draggable with identifier: ${b}`):console.error(`cannot find droppable with identifier: ${p}`)})}}))}validate(){let l=(e?Array.from(this.shadowRoot.querySelectorAll(t)):Array.from(this.querySelectorAll(t))).filter(p=>p.childElementCount>0).length;return this.minAssociations<=0||this.minAssociations<=l}saveResponse(){let c=this.droppables.map(l=>{var d;let p="";return((d=l.children)==null?void 0:d.length)>0&&(p+=Array.from(l.children).map(u=>u.getAttribute("identifier")).join(" ")+" "),p+=l.getAttribute("identifier"),p});this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:c}}))}}return _chunk6G76D2MIcjs.c.call(void 0, [tr(i)],r.prototype,"reInitDragAndDrop",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"response-identifier"})],r.prototype,"responseIdentifier",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:!1,type:Object})],r.prototype,"configuration",2),_chunk6G76D2MIcjs.c.call(void 0, [y("configuration")],r.prototype,"handleDragOptionsChanged",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],r.prototype,"disabled",2),_chunk6G76D2MIcjs.c.call(void 0, [y("disabled",{waitUntilFirstUpdate:!0})],r.prototype,"handleDisabledChange",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,reflect:!0})],r.prototype,"readonly",2),_chunk6G76D2MIcjs.c.call(void 0, [y("readonly",{waitUntilFirstUpdate:!0})],r.prototype,"handleReadonlyChange",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0,attribute:"min-associations"})],r.prototype,"minAssociations",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0,attribute:"max-associations"})],r.prototype,"maxAssociations",2),r};var ge=class extends H(_lit.LitElement,"qti-simple-associable-choice",!0,".dl"){render(){return _lit.html` <slot name="prompt"></slot>
|
|
163
164
|
<slot name="qti-simple-associable-choice"></slot>
|
|
164
165
|
${this._childrenMap.length>0&&Array.from(Array(Math.ceil(this._childrenMap.length/2)).keys()).map((e,t)=>_lit.html`<div part="associables-container">
|
|
165
166
|
<div name="left${t}" part="drop-list" class="dl" identifier="droplist${t}_left"></div>
|
|
166
167
|
<div name="right${t}" part="drop-list" class="dl" identifier="droplist${t}_right"></div>
|
|
167
|
-
</div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};
|
|
168
|
+
</div>`)}`}connectedCallback(){super.connectedCallback(),this._childrenMap=Array.from(this.querySelectorAll("qti-simple-associable-choice"))}};ge.styles=_lit.css`
|
|
168
169
|
:host {
|
|
169
170
|
display: block; /* necessary to calculate scaling position */
|
|
170
171
|
}
|
|
@@ -173,8 +174,8 @@
|
|
|
173
174
|
flex-wrap: wrap;
|
|
174
175
|
gap: 0.5rem;
|
|
175
176
|
}
|
|
176
|
-
`,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],
|
|
177
|
-
<slot part="drops"></slot>`}};
|
|
177
|
+
`,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],ge.prototype,"_childrenMap",2);customElements.define("qti-associate-interaction",ge);var Ue=class extends H(_lit.LitElement,"qti-gap-text",!1,"qti-gap"){render(){return _lit.html` <slot part="drags" name="qti-gap-text"></slot>
|
|
178
|
+
<slot part="drops"></slot>`}};Ue.styles=[_lit.css`
|
|
178
179
|
:host {
|
|
179
180
|
display: flex;
|
|
180
181
|
align-items: flex-start;
|
|
@@ -197,23 +198,23 @@
|
|
|
197
198
|
align-items: flex-start;
|
|
198
199
|
flex: 1;
|
|
199
200
|
}
|
|
200
|
-
`];customElements.define("qti-gap-match-interaction",
|
|
201
|
+
`];customElements.define("qti-gap-match-interaction",Ue);function re(a,i,e,t){switch(a){case"circle":{let[r,s,o]=i,c=r/e.width*100,l=s/e.height*100,p=o/e.width*100;t.style.left=c-p+"%",t.style.top=l-p+"%",t.style.width=t.style.height=4*p+"px",t.style.borderRadius="9999px"}break;case"rect":{let[r,s,o,c]=i,l=r/e.width*100,p=s/e.height*100,d=o/e.width*100,u=c/e.height*100;t.style.left=l+"%",t.style.top=p+"%",t.style.width=d-l+"%",t.style.height=u-p+"%"}break;case"poly":{let r=i.reduce((v,N,Ot,qr)=>{if(Ot%2===1){let Ar=v.pop();v[v.length]={x:Ar,y:qr[Ot]}}else v.push(N);return v},[]),s=Math.min(...r.map(v=>v.x)),o=Math.max(...r.map(v=>v.x)),c=Math.min(...r.map(v=>v.y)),l=Math.max(...r.map(v=>v.y)),p=s/e.width*100,d=c/e.height*100,u=o/e.width*100,b=l/e.height*100;t.style.left=s/e.width*100+"%",t.style.top=c/e.height*100+"%",t.style.width=u-p+"%",t.style.height=b-d+"%";let T=r.map(v=>({x:(v.x-s)/(o-s)*100,y:(v.y-c)/(l-c)*100})).map(v=>Math.round(v.x)+"% "+Math.round(v.y)+"%").join(",");t.style.clipPath=`polygon(${T})`}break;default:break}}var _repeatjs = require('lit/directives/repeat.js');var V=class extends g{constructor(){super();this.startPoint=null;this.endPoint=null;this._lines=[];this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}reset(){this._lines=[]}validate(){return this._lines.length>0}set response(e){Array.isArray(e)&&(this._lines=e)}render(){var e,t,r,s;return _lit.html`<slot name="prompt"></slot>
|
|
201
202
|
<line-container>
|
|
202
203
|
<svg
|
|
203
204
|
width=${_ifdefinedjs.ifDefined.call(void 0, (e=this.grImage[0])==null?void 0:e.width)}
|
|
204
205
|
height=${_ifdefinedjs.ifDefined.call(void 0, (t=this.grImage[0])==null?void 0:t.height)}
|
|
205
|
-
viewbox="0 0 ${(r=this.grImage[0])==null?void 0:r.width} ${(
|
|
206
|
+
viewbox="0 0 ${(r=this.grImage[0])==null?void 0:r.width} ${(s=this.grImage[0])==null?void 0:s.height}"
|
|
206
207
|
>
|
|
207
|
-
${_repeatjs.repeat.call(void 0, this._lines,
|
|
208
|
+
${_repeatjs.repeat.call(void 0, this._lines,o=>o,(o,c)=>_lit.svg`
|
|
208
209
|
<line
|
|
209
210
|
part="line"
|
|
210
|
-
x1=${parseInt(this.querySelector("[identifier="+
|
|
211
|
-
y1=${parseInt(this.querySelector("[identifier="+
|
|
212
|
-
x2=${parseInt(this.querySelector("[identifier="+
|
|
213
|
-
y2=${parseInt(this.querySelector("[identifier="+
|
|
211
|
+
x1=${parseInt(this.querySelector("[identifier="+o.split(" ")[0]+"]").style.left)}
|
|
212
|
+
y1=${parseInt(this.querySelector("[identifier="+o.split(" ")[0]+"]").style.top)}
|
|
213
|
+
x2=${parseInt(this.querySelector("[identifier="+o.split(" ")[1]+"]").style.left)}
|
|
214
|
+
y2=${parseInt(this.querySelector("[identifier="+o.split(" ")[1]+"]").style.top)}
|
|
214
215
|
stroke="red"
|
|
215
216
|
stroke-width="3"
|
|
216
|
-
@click=${
|
|
217
|
+
@click=${l=>{l.stopPropagation(),this._lines=this._lines.filter((p,d)=>d!==c),this.saveResponse(this._lines)}}
|
|
217
218
|
/>
|
|
218
219
|
`)}
|
|
219
220
|
${this.startPoint&&_lit.svg`<line
|
|
@@ -227,7 +228,7 @@
|
|
|
227
228
|
/>`}
|
|
228
229
|
</svg>
|
|
229
230
|
<slot></slot>
|
|
230
|
-
</line-container>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,
|
|
231
|
+
</line-container>`}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,s=r.getAttribute("coords"),o=r.getAttribute("shape"),c=s.split(",").map(l=>parseInt(l));re(o,c,t,r)}firstUpdated(e){super.firstUpdated(e),this.hotspots=document.querySelectorAll("qti-associable-hotspot"),document.addEventListener("mousemove",t=>{this.mouseCoord={x:t.clientX-this.grImage[0].getBoundingClientRect().left,y:t.clientY-this.grImage[0].getBoundingClientRect().top}}),this.hotspots.forEach(t=>{t.style.left=t.getAttribute("coords").split(",")[0]+"px",t.style.top=t.getAttribute("coords").split(",")[1]+"px",t.addEventListener("click",r=>{this.startPoint?this.endPoint||(this.endPoint=r.target,this._lines=[...this._lines,this.startPoint.getAttribute("identifier")+" "+this.endPoint.getAttribute("identifier")],this.saveResponse(this._lines),this.startPoint=null,this.endPoint=null):(this.startPoint=r.target,this.startCoord={x:this.startPoint.getAttribute("coords").split(",")[0],y:this.startPoint.getAttribute("coords").split(",")[1]})})})}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};V.styles=[_lit.css`
|
|
231
232
|
slot:not([name='prompt']) {
|
|
232
233
|
// position: relative; /* qti-hotspot-choice relative to the slot */
|
|
233
234
|
display: block;
|
|
@@ -250,8 +251,8 @@
|
|
|
250
251
|
top: 0px;
|
|
251
252
|
left: 0px;
|
|
252
253
|
}
|
|
253
|
-
`],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],
|
|
254
|
-
<slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),
|
|
254
|
+
`],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],V.prototype,"_lines",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],V.prototype,"startCoord",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],V.prototype,"mouseCoord",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.query.call(void 0, "svg")],V.prototype,"svgContainer",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.queryAssignedElements.call(void 0, {selector:"img"})],V.prototype,"grImage",2);customElements.define("qti-graphic-associate-interaction",V);var Ie=class extends H(_lit.LitElement,"qti-gap-img",!1,"qti-associable-hotspot"){render(){return _lit.html` <slot></slot>
|
|
255
|
+
<slot name="qti-gap-img"></slot>`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),s=t.getAttribute("shape"),o=r.split(",").map(c=>parseInt(c));switch(s){case"circle":{let[c,l,p]=o;t.style.left=c-p+"px",t.style.top=l-p+"px",t.style.width=t.style.height=2*p+"px"}break;case"rect":{let[c,l,p,d]=o;t.style.left=c+"px",t.style.top=l+"px",t.style.width=p-c+"px",t.style.height=d-l+"px"}break;default:break}}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-hotspot",this.positionHotspotOnRegister)}};Ie.styles=_lit.css`
|
|
255
256
|
:host {
|
|
256
257
|
display: inline-block;
|
|
257
258
|
position: relative;
|
|
@@ -260,12 +261,12 @@
|
|
|
260
261
|
display: flex;
|
|
261
262
|
gap: 1rem;
|
|
262
263
|
}
|
|
263
|
-
`;customElements.define("qti-graphic-gap-match-interaction",
|
|
264
|
+
`;customElements.define("qti-graphic-gap-match-interaction",Ie);var Fe=class extends E{render(){return _lit.html`
|
|
264
265
|
<slot name="prompt"></slot>
|
|
265
266
|
<!-- slot for the prompt -->
|
|
266
267
|
<slot></slot>
|
|
267
268
|
<!-- slot for the image and hotspots -->
|
|
268
|
-
`}setHotspotOrder(e){let{identifier:t}=e.detail,r=this._choiceElements.find(
|
|
269
|
+
`}setHotspotOrder(e){let{identifier:t}=e.detail,r=this._choiceElements.find(o=>o.getAttribute("identifier")===t),s=this._choiceElements.length;if(!this.choiceOrdering){if(this.choiceOrdering=!0,r.order==null){if(this._choiceElements.filter(o=>o.order>0).length>=s){this.choiceOrdering=!1;return}r.order=this._choiceElements.filter(o=>!!o.order).length+1,this.choiceOrdering=!1;return}else this._choiceElements.forEach(o=>(o.order>o.order&&o.order--,o)),r.order=null;this.choiceOrdering=!1}}positionHotspotOnRegister(e){let t=this.querySelector("img"),r=e.target,s=r.getAttribute("coords"),o=r.getAttribute("shape"),c=s.split(",").map(l=>parseInt(l));re(o,c,t,r)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-choice-element-selected",this.setHotspotOrder),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-choice-element-selected",this.setHotspotOrder),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};Fe.styles=[_lit.css`
|
|
269
270
|
slot:not([name='prompt']) {
|
|
270
271
|
position: relative; /* qti-hotspot-choice relative to the slot */
|
|
271
272
|
display: block;
|
|
@@ -276,12 +277,12 @@
|
|
|
276
277
|
pointer-events: none;
|
|
277
278
|
user-select: none;
|
|
278
279
|
}
|
|
279
|
-
`];customElements.define("qti-graphic-order-interaction",
|
|
280
|
+
`];customElements.define("qti-graphic-order-interaction",Fe);var Xe=class extends E{render(){return _lit.html`
|
|
280
281
|
<slot name="prompt"></slot>
|
|
281
282
|
<!-- slot for the prompt -->
|
|
282
283
|
<slot></slot>
|
|
283
284
|
<!-- slot for the image and hotspots -->
|
|
284
|
-
`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),
|
|
285
|
+
`}positionHotspotOnRegister(i){let e=this.querySelector("img"),t=i.target,r=t.getAttribute("coords"),s=t.getAttribute("shape"),o=r.split(",").map(c=>parseInt(c));re(s,o,e,t)}connectedCallback(){super.connectedCallback(),this.addEventListener("qti-register-choice",this.positionHotspotOnRegister)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("qti-register-choice",this.positionHotspotOnRegister)}};Xe.styles=[_lit.css`
|
|
285
286
|
slot:not([name='prompt']) {
|
|
286
287
|
position: relative; /* qti-hotspot-choice relative to the slot */
|
|
287
288
|
display: block;
|
|
@@ -293,10 +294,10 @@
|
|
|
293
294
|
user-select: none;
|
|
294
295
|
/* width:100%; */
|
|
295
296
|
}
|
|
296
|
-
`];customElements.define("qti-hotspot-interaction",
|
|
297
|
+
`];customElements.define("qti-hotspot-interaction",Xe);var Vt=class extends _lit.LitElement{connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-simple-associable-choice"),this.setAttribute("part","qti-simple-associable-choice")}render(){return _lit.html`
|
|
297
298
|
<slot></slot>
|
|
298
299
|
<slot name="qti-simple-associable-choice"></slot>
|
|
299
|
-
`}};customElements.define("qti-simple-associable-choice",
|
|
300
|
+
`}};customElements.define("qti-simple-associable-choice",Vt);var ie=class extends H(_lit.LitElement,"qti-simple-match-set:first-of-type qti-simple-associable-choice",!1,"qti-simple-match-set:last-of-type qti-simple-associable-choice"){constructor(){super(...arguments);this.response=[];this.responseIdentifier=""}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=[]}render(){return this.classList.contains("qti-match-tabular")?_lit.html`
|
|
300
301
|
<slot name="prompt"></slot>
|
|
301
302
|
<table>
|
|
302
303
|
<tr>
|
|
@@ -305,24 +306,24 @@
|
|
|
305
306
|
</tr>
|
|
306
307
|
${this.rows.map((e,t)=>_lit.html`<tr>
|
|
307
308
|
<td part="c-header">${_unsafehtmljs.unsafeHTML.call(void 0, e.innerHTML)}</td>
|
|
308
|
-
${this.cols.map((r,
|
|
309
|
+
${this.cols.map((r,s)=>{let o=`${e.getAttribute("identifier")} ${r.getAttribute("identifier")}`;return _lit.html`<td>
|
|
309
310
|
<input
|
|
310
311
|
type="checkbox"
|
|
311
312
|
value=${r.getAttribute("identifier")}
|
|
312
|
-
.checked=${this.response.includes(
|
|
313
|
-
@change=${
|
|
313
|
+
.checked=${this.response.includes(o)}
|
|
314
|
+
@change=${c=>{c.target.checked?this.response.push(o):this.response=this.response.filter(p=>p!==o),this.requestUpdate(),this.dispatchEvent(new CustomEvent("qti-interaction-response",{bubbles:!0,composed:!0,detail:{responseIdentifier:this.responseIdentifier,response:this.response}}))}}
|
|
314
315
|
/>
|
|
315
316
|
</td>`})}
|
|
316
317
|
</tr>`)}
|
|
317
318
|
</table>
|
|
318
|
-
`:_lit.html`<slot name="prompt"></slot> <slot></slot>`}};
|
|
319
|
-
<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())})}};
|
|
319
|
+
`:_lit.html`<slot name="prompt"></slot> <slot></slot>`}};ie.styles=[],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],ie.prototype,"response",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"response-identifier"})],ie.prototype,"responseIdentifier",2);customElements.define("qti-match-interaction",ie);var Ye=class extends g{constructor(){super();this.value=0}reset(){}validate(){return!0}set response(e){}static get properties(){return _chunk6G76D2MIcjs.b.call(void 0, _chunk6G76D2MIcjs.a.call(void 0, {},g.properties),{step:{type:Number,attribute:"step",default:10}})}render(){return _lit.html` <slot name="prompt"></slot>
|
|
320
|
+
<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())})}};Ye.styles=[_lit.css``];customElements.define("qti-media-interaction",Ye);var se=class extends H(_lit.LitElement,"qti-simple-choice",!0,"drop-list"){render(){return _lit.html` <slot name="prompt"> </slot>
|
|
320
321
|
<div part="container">
|
|
321
322
|
<slot part="drags"> </slot>
|
|
322
323
|
<div part="drops">
|
|
323
324
|
${Array.from(this.querySelectorAll("qti-simple-choice")).map((e,t)=>_lit.html`<drop-list part="drop-list" identifier="droplist${t}"></drop-list>`)}
|
|
324
325
|
</div>
|
|
325
|
-
</div>`}connectedCallback(){super.connectedCallback(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};
|
|
326
|
+
</div>`}connectedCallback(){super.connectedCallback(),this.childrenMap=Array.from(this.querySelectorAll("qti-simple-choice")),this.childrenMap.forEach(e=>e.setAttribute("part","qti-simple-choice"))}};se.layoutClass=["qti-choices-top","qti-choices-bottom","qti-choices-left","qti-choices-right"],se.styles=[_lit.css`
|
|
326
327
|
[part='drags'] {
|
|
327
328
|
display: flex;
|
|
328
329
|
align-items: flex-start;
|
|
@@ -370,7 +371,7 @@
|
|
|
370
371
|
:host(.qti-choices-right) [part='container'] {
|
|
371
372
|
flex-direction: row-reverse;
|
|
372
373
|
}
|
|
373
|
-
`],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],
|
|
374
|
+
`],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],se.prototype,"orientation",2);customElements.define("qti-order-interaction",se);var Be=class extends _lit.LitElement{render(){return _lit.html`<slot></slot>`}};Be.styles=[_lit.css`
|
|
374
375
|
:host {
|
|
375
376
|
display: block;
|
|
376
377
|
}
|
|
@@ -381,23 +382,23 @@
|
|
|
381
382
|
left: 50%;
|
|
382
383
|
transform: translateX(-50%);
|
|
383
384
|
}
|
|
384
|
-
`];customElements.define("qti-position-object-interaction",
|
|
385
|
+
`];customElements.define("qti-position-object-interaction",Be);var je=class extends _lit.LitElement{constructor(){super();this.removeMoveListener=this.removeMoveListener.bind(this),this.dragElementHandler=this.dragElementHandler.bind(this)}render(){return _lit.html`<slot></slot>`}dragElementHandler(e){e.preventDefault();let t=e.clientX-this.startX,r=e.clientY-this.startY;this.dragElement.style.left=this.dragElement.offsetLeft+t+"px",this.dragElement.style.top=this.dragElement.offsetTop+r+"px",this.startX=e.clientX,this.startY=e.clientY}firstUpdated(e){super.firstUpdated(e),this.dragElement=this.querySelector("qti-position-object-interaction>img"),this.startX=0,this.startY=0,this.dragElement.addEventListener("mousedown",t=>{this.startX=t.clientX,this.startY=t.clientY,document.addEventListener("mousemove",this.dragElementHandler,!0)}),document.addEventListener("mouseup",this.removeMoveListener)}removeMoveListener(e){document.removeEventListener("mousemove",this.dragElementHandler,!0)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("mousemove",this.dragElementHandler),document.removeEventListener("mouseup",this.removeMoveListener)}};je.styles=[_lit.css`
|
|
385
386
|
:host {
|
|
386
387
|
display: inline-block;
|
|
387
388
|
position: relative;
|
|
388
389
|
}
|
|
389
|
-
`];customElements.define("qti-position-object-stage",
|
|
390
|
+
`];customElements.define("qti-position-object-stage",je);var _stylemapjs = require('lit/directives/style-map.js');var K=class extends g{constructor(){super(...arguments);this.maxChoices=0;this.minChoices=0;this._points=[]}render(){return _lit.html` <slot name="prompt"></slot>
|
|
390
391
|
<point-container>
|
|
391
392
|
${_repeatjs.repeat.call(void 0, this._points,e=>e,(e,t)=>_lit.html`
|
|
392
393
|
<button
|
|
393
394
|
part="point"
|
|
394
395
|
style=${_stylemapjs.styleMap.call(void 0, {position:"absolute",transform:"translate(-50%, -50%)",left:`${e.split(" ")[0]}px`,top:`${e.split(" ")[1]}px`})}
|
|
395
396
|
aria-label="Remove point at ${e}"
|
|
396
|
-
@click=${r=>{r.stopPropagation(),this._points=this._points.filter((o
|
|
397
|
+
@click=${r=>{r.stopPropagation(),this._points=this._points.filter((s,o)=>o!==t),this.saveResponse(this._points)}}
|
|
397
398
|
></button>
|
|
398
399
|
`)}
|
|
399
400
|
<slot></slot>
|
|
400
|
-
</point-container>`}reset(){this._points=[]}validate(){return this._points.length>=this.minChoices&&this._points.length<=this.maxChoices}set response(e){this._points=Array.isArray(e)?e:[e]}connectedCallback(){super.connectedCallback(),this.querySelector("img").addEventListener("click",t=>{let r=t.offsetX,
|
|
401
|
+
</point-container>`}reset(){this._points=[]}validate(){return this._points.length>=this.minChoices&&this._points.length<=this.maxChoices}set response(e){this._points=Array.isArray(e)?e:[e]}connectedCallback(){super.connectedCallback(),this.querySelector("img").addEventListener("click",t=>{let r=t.offsetX,s=t.offsetY;this._points=[...this._points,r+" "+s],this.saveResponse(this._points)})}disconnectedCallback(){super.disconnectedCallback()}};K.styles=[_lit.css`
|
|
401
402
|
:host {
|
|
402
403
|
display: block;
|
|
403
404
|
}
|
|
@@ -405,7 +406,7 @@
|
|
|
405
406
|
display: block;
|
|
406
407
|
position: relative;
|
|
407
408
|
}
|
|
408
|
-
`],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"max-choices"})],
|
|
409
|
+
`],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"max-choices"})],K.prototype,"maxChoices",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"min-choices"})],K.prototype,"minChoices",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],K.prototype,"_points",2);customElements.define("qti-select-point-interaction",K);var C=class extends g{constructor(){super();this.stepLabel=!1;this.reverse=!1;this._handleDisabledChange=(e,t)=>{};this._handleReadonlyChange=(e,t)=>{};this.csLive=getComputedStyle(this)}set min(e){this._min=e,this.value=e,this.style.setProperty("--min",`${this._min}`)}get min(){return this._min}set max(e){this._max=e,this.style.setProperty("--max",`${this._max}`)}get max(){return this._max}set step(e){this._step=e,this.style.setProperty("--step",`${this._step}`)}get step(){return this._step}reset(){}validate(){return!0}set response(e){if(Array.isArray(e)){console.error("QtiSliderInteraction: response is an array, but should be a single value");return}let t=parseInt(e);if(Number.isNaN(t)){console.error("QtiSliderInteraction: response is not a number");return}this.value=t}render(){this.value<this.min&&(this.value=this.min),this.value>this.max&&(this.value=this.max);let e=(this.value-this.min)/(this.max-this.min)*100;return this.style.setProperty("--value-percentage",`${e}%`),this.setAttribute("aria-valuenow",this.value.toString()),_lit.html`<slot name="prompt"></slot>
|
|
409
410
|
<div id="slider" part="slider">
|
|
410
411
|
${this.csLive.getPropertyValue("--show-bounds")=="true"?_lit.html`<div id="bounds" part="bounds">
|
|
411
412
|
<div>${this._min}</div>
|
|
@@ -417,17 +418,17 @@
|
|
|
417
418
|
${this.csLive.getPropertyValue("--show-value")=="true"?_lit.html`<div id="value" part="value">${this.value}</div>`:_lit.nothing}
|
|
418
419
|
</div>
|
|
419
420
|
</div>
|
|
420
|
-
</div>`}connectedCallback(){super.connectedCallback(),this.step=1,this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}_onTouchMove(e){let t=
|
|
421
|
+
</div>`}connectedCallback(){super.connectedCallback(),this.step=1,this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}_onTouchMove(e){let t=c=>{let{x:l}=this.getPositionFromEvent(c),p=l-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(p),c.stopPropagation()},r=()=>{document.removeEventListener("touchmove",t),document.removeEventListener("touchend",r),this.saveResponse(this.value.toString())};document.addEventListener("touchmove",t),document.addEventListener("touchend",r);let{x:s}=this.getPositionFromEvent(e),o=s-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(o),e.stopPropagation()}_onMouseDown(e){let t=o=>{let c=o.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(c),o.preventDefault(),o.stopPropagation()},r=()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),this.saveResponse(this.value.toString())};document.addEventListener("mousemove",t),document.addEventListener("mouseup",r);let s=e.pageX-this._rail.getBoundingClientRect().left-document.documentElement.scrollLeft;this.calculateValue(s),e.preventDefault(),e.stopPropagation()}calculateValue(e){let t=this.min+(this.max-this.min)*e/this._rail.getBoundingClientRect().width,r=this.min+Math.round((t-this.min)/this._step)*this._step;this.value=r}getPositionFromEvent(e){let t;if(e.type=="touchstart"||e.type=="touchmove"||e.type=="touchend"||e.type=="touchcancel"){let r=typeof e.originalEvent=="undefined"?e:e.originalEvent,s=r.touches[0]||r.changedTouches[0];t={x:s.pageX,y:s.pageY}}else(e.type=="mousedown"||e.type=="mouseup"||e.type=="mousemove"||e.type=="mouseover"||e.type=="mouseout"||e.type=="mouseenter"||e.type=="mouseleave")&&(t={x:e.clientX,y:e.clientY});return t}};C.styles=[_lit.css``],_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.query.call(void 0, "#knob")],C.prototype,"_knob",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.query.call(void 0, "#rail")],C.prototype,"_rail",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number})],C.prototype,"value",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean,attribute:"step-label"})],C.prototype,"stepLabel",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean})],C.prototype,"reverse",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"lower-bound"})],C.prototype,"min",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"upper-bound"})],C.prototype,"max",1),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"step"})],C.prototype,"step",1),_chunk6G76D2MIcjs.c.call(void 0, [y("disabled",{waitUntilFirstUpdate:!0})],C.prototype,"_handleDisabledChange",2),_chunk6G76D2MIcjs.c.call(void 0, [y("readonly",{waitUntilFirstUpdate:!0})],C.prototype,"_handleReadonlyChange",2);customElements.define("qti-slider-interaction",C);var ne=class extends g{constructor(){super(...arguments);this.countAttempt="true"}validate(){return!0}set response(e){}render(){return _lit.html`<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"}}))}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"count-attempt"})],ne.prototype,"countAttempt",2),_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String})],ne.prototype,"title",2),ne= exports.QtiEndAttemptInteraction =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-end-attempt-interaction")],ne);var ze=class extends _lit.LitElement{connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent("qti-register-hotspot",{bubbles:!0,cancelable:!1,composed:!0}))}render(){return _lit.html` <slot name="qti-gap-img"></slot> `}};ze.styles=_lit.css`
|
|
421
422
|
:host {
|
|
422
423
|
position: absolute;
|
|
423
424
|
}
|
|
424
|
-
`;customElements.define("qti-associable-hotspot",
|
|
425
|
+
`;customElements.define("qti-associable-hotspot",ze);var We=class extends _lit.LitElement{constructor(){super(...arguments);this.tabindex=0}render(){return _lit.html` <slot name="qti-gap-text"></slot>`}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0})],We.prototype,"tabindex",2);customElements.define("qti-gap",We);var Je=class extends _lit.LitElement{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){this.setAttribute("slot","qti-gap-img")}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0})],Je.prototype,"tabindex",2);customElements.define("qti-gap-img",Je);var Ze=class extends _lit.LitElement{constructor(){super(...arguments);this.tabindex=0}connectedCallback(){super.connectedCallback(),this.setAttribute("slot","qti-gap-text")}render(){return _lit.html`<slot></slot>`}};_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,reflect:!0})],Ze.prototype,"tabindex",2);customElements.define("qti-gap-text",Ze);var ve=class extends _{};ve.styles=_lit.css`
|
|
425
426
|
:host {
|
|
426
427
|
position: absolute;
|
|
427
428
|
}
|
|
428
|
-
`,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"aria-ordervalue",type:Number,reflect:!0})],
|
|
429
|
-
<slot></slot> `}};
|
|
430
|
-
<slot part="slot"></slot> `}};
|
|
429
|
+
`,_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {attribute:"aria-ordervalue",type:Number,reflect:!0})],ve.prototype,"order",2);customElements.define("qti-hotspot-choice",ve);var Ge=class extends _{render(){return _lit.html`<div part="ch"><div part="cha"></div></div>
|
|
430
|
+
<slot></slot> `}};Ge= exports.QtiHottext =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-hottext")],Ge);var Dt=class extends _lit.LitElement{};customElements.define("qti-inline-choice",Dt);var ye=class extends _{render(){return _lit.html`<div part="ch"><div part="cha"></div></div>
|
|
431
|
+
<slot part="slot"></slot> `}};ye.styles=_lit.css`
|
|
431
432
|
:host {
|
|
432
433
|
display: flex;
|
|
433
434
|
}
|
|
@@ -435,4 +436,13 @@
|
|
|
435
436
|
width: 100%;
|
|
436
437
|
display: block;
|
|
437
438
|
}
|
|
438
|
-
`,
|
|
439
|
+
`,ye= exports.QtiSimpleChoice =_chunk6G76D2MIcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-simple-choice")],ye);exports.Interaction = g; exports.QtPrintedVariable = fe; exports.QtiAnd = Me; exports.QtiAssessmentItem = A; exports.QtiAssociableHotspot = ze; exports.QtiAssociateInteraction = ge; exports.QtiBaseValue = He; exports.QtiChoice = _; exports.QtiChoiceInteraction = G; exports.QtiCompanionMaterialsInfo = Ce; exports.QtiConditionExpression = w; exports.QtiContains = bt; exports.QtiCorrect = vt; exports.QtiEndAttemptInteraction = ne; exports.QtiEqual = Ve; exports.QtiEqualRounded = Ne; exports.QtiExpression = m; exports.QtiExtendedTextInteraction = L; exports.QtiFeedbackBlock = we; exports.QtiFeedbackInline = $e; exports.QtiGap = We; exports.QtiGapImg = Je; exports.QtiGapMatchInteraction = Ue; exports.QtiGapText = Ze; exports.QtiGraphicAssociateInteraction = V; exports.QtiGraphicGapMatchInteraction = Ie; exports.QtiGraphicOrderInteraction = Fe; exports.QtiGt = yt; exports.QtiGte = xt; exports.QtiHotspotChoice = ve; exports.QtiHotspotInteraction = Xe; exports.QtiHottext = Ge; exports.QtiHottextInteraction = mt; exports.QtiInlineChoice = Dt; exports.QtiInlineChoiceInteraction = j; exports.QtiIsNull = Et; exports.QtiLookupOutcomeValue = Le; exports.QtiLt = _t; exports.QtiLte = Ct; exports.QtiMapResponse = Pe; exports.QtiMapping = ee; exports.QtiMatch = At; exports.QtiMatchInteraction = ie; exports.QtiMediaInteraction = Ye; exports.QtiMember = kt; exports.QtiModalFeedback = Te; exports.QtiMultiple = wt; exports.QtiNot = $t; exports.QtiOr = Tt; exports.QtiOrderInteraction = se; exports.QtiOrdered = Rt; exports.QtiOutcomeDeclaration = D; exports.QtiPortableCustomInteraction = Ht; exports.QtiPositionObjectStage = je; exports.QtiProduct = St; exports.QtiPrompt = Qe; exports.QtiResponseCondition = ht; exports.QtiResponseDeclaration = U; exports.QtiResponseElse = me; exports.QtiResponseElseIf = gt; exports.QtiResponseIf = he; exports.QtiResponseProcessing = Q; exports.QtiRule = M; exports.QtiSPositionObjectInteraction = Be; exports.QtiSelectPointInteraction = K; exports.QtiSetOutcomeValue = ft; exports.QtiSimpleAssociableChoice = Vt; exports.QtiSimpleChoice = ye; exports.QtiSliderInteraction = C; exports.QtiStringMatch = De; exports.QtiStylesheet = et; exports.QtiSum = Lt; exports.QtiTextEntryInteraction = R; exports.QtiVariable = Mt; exports.itemContext = P; exports.qtiAndMixin = Wi; exports.qtiContentBody = qe; exports.qtiRubricBlock = S;
|
|
440
|
+
/*! Bundled license information:
|
|
441
|
+
|
|
442
|
+
lit-html/node/lit-html.js:
|
|
443
|
+
(**
|
|
444
|
+
* @license
|
|
445
|
+
* Copyright 2017 Google LLC
|
|
446
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
447
|
+
*)
|
|
448
|
+
*/
|