@citolab/qti-components 3.0.42 → 3.0.43
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/index.cjs +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
package/index.cjs
CHANGED
|
@@ -314,7 +314,7 @@
|
|
|
314
314
|
`],customElements.define("qti-order-interaction",Ee);class Ce extends T{constructor(){super()}render(){return s.html`<slot></slot>
|
|
315
315
|
<div class="notification"></div>`}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback()}}Ce.styles=[ae],customElements.define("qti-select-point-interaction",Ce);const qe=37,_e=38,Se=39,Oe=40,ke=33,Re=34,we=35,Ie=36;class Te extends k{constructor(){super(),this.addEventListener("keydown",this._onKeyDown.bind(this))}reset(){}validate(){return!0}set response(e){}set min(e){this._min=e,this.style.setProperty("--qti-slider-interaction-lower-bounds",`${this._min}`)}get min(){return this._min}set max(e){this._max=e,this.style.setProperty("--qti-slider-interaction-upper-bounds",`${this._max}`)}get max(){return this._max}set step(e){this._step=e,this.style.setProperty("--qti-slider-interaction-step",`${this._step}`)}get step(){return this._step}render(){return s.html`
|
|
316
316
|
<slot name="prompt"></slot>
|
|
317
|
-
<slot></slot>`}firstUpdated(){this.addEventListener("mousedown",this._onMouseDown.bind(this)),this.style.setProperty("--qti-slider-interaction-step",this.step?this.step.toString():"10");const e=this.getAttribute("value");this._moveSliderTo(e)}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}get RAIL_WIDTH(){return this.offsetWidth}_onKeyDown(e){let t=!1;const s=this.value;switch(e.keyCode){case qe:case Oe:this._moveSliderTo(s-this.step),t=!0;break;case Se:case _e:this._moveSliderTo(s+this.step),t=!0;break;case Re:this._moveSliderTo(s-this.step),t=!0;break;case ke:this._moveSliderTo(s+this.step),t=!0;break;case Ie:this._moveSliderTo(this.min),t=!0;break;case we:this._moveSliderTo(this.max),t=!0}t&&(e.preventDefault(),e.stopPropagation())}_onMouseDown(e){const t=e.target,s=this.min,i=this.max,n=e=>{const n=e.pageX-t.offsetLeft,r=s+(i-s)*n/this.RAIL_WIDTH;this._moveSliderTo(r),e.preventDefault(),e.stopPropagation()},r=()=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",r),this.saveResponse({base:{float:this.value}})};document.addEventListener("mousemove",n),document.addEventListener("mouseup",r),e.preventDefault(),e.stopPropagation(),e.target.focus();const o=e.pageX-t.offsetLeft,a=s+(i-s)*o/this.RAIL_WIDTH;this._moveSliderTo(a)}_moveSliderTo(e){const t=this.min,s=this.max;let i=Number(e);i<t&&(i=t),i>s&&(i=s);const n=(i-t)/(s-t)*100;this.style.setProperty("--qti-slider-interaction-aria-valuenow",`${n}%`)}}Te.styles=[ae,s.css``],m([i.property({type:Number,attribute:"lower-bound"}),g("design:type",Number),g("design:paramtypes",[Number])],Te.prototype,"min",null),m([i.property({type:Number,attribute:"upper-bound"}),g("design:type",Number),g("design:paramtypes",[Number])],Te.prototype,"max",null),m([i.property({type:Number,attribute:"step"}),g("design:type",Number),g("design:paramtypes",[Number])],Te.prototype,"step",null),customElements.define("qti-slider-interaction",Te);class Ae extends s.LitElement{constructor(){super(...arguments),this.render=()=>s.html`${this.value}`}levenshtein(e,t){let s;if(0===e.length)return t.length;if(0===t.length)return e.length;e.length>t.length&&(s=e,e=t,t=s);const i=e.length,n=t.length,r=Array(i);let o,a,l;for(o=0;o<=i;o++)r[o]=o;for(o=1;o<=n;o++){for(l=o,a=1;a<=i;a++)s=r[a-1],r[a-1]=l,l=Math.min(s+(t[o-1]!==e[a-1]),l+1,r[a]+1);r[a-1]=l}return l}calculate(){const e=this.firstElementChild,t=this.lastElementChild,s=e.calculate(),i=t.calculate();return this.value=100-this.levenshtein(s.toString().trim(),i.toString().trim())/i.toString().length*100,this.value}}Ae.properties={value:{}},customElements.define("qti-custom-operator-levenshtein",Ae);class Ne extends s.LitElement{render(){return s.html``}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return t?t.replace(/[^0-9$.,]/g,""):""}}customElements.define("qti-custom-operator-numeric",Ne);class Le extends s.LitElement{constructor(){super(...arguments),this.render=()=>s.html`${this.value}`}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return this.value=t?this.parseNumber(t,undefined):"",this.value}parseNumber(e,t=navigator.languages){const s=Intl.NumberFormat(t).format(1.1),i=new RegExp(`[^-+0-9${s.charAt(1)}]`,"g"),n=e.replace(i,"").replace(s.charAt(1),".");return parseFloat(n)}}Le.properties={value:{}},customElements.define("qti-custom-operator-parse-numeric-nl",Le);class Me extends s.LitElement{render(){return s.html``}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return t?t.replace(/ /g,""):""}}customElements.define("qti-custom-operator-remove-spaces",Me);class $e extends s.LitElement{render(){return s.html``}calculate(){return this.firstElementChild.calculate().toString().trim()}}customElements.define("qti-custom-operator-trim",$e);const Qe=(e,t)=>class extends e{_dispatch(){this.dispatchEvent(new CustomEvent(t,{composed:!0,bubbles:!0,detail:+this.getAttribute("index")}))}connectedCallback(){this.addEventListener("click",this._dispatch)}disconnectedCallback(){this.removeEventListener("click",this._dispatch)}};customElements.define("qti-test-next",class extends(Qe(s.LitElement,"on-next-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}}),customElements.define("qti-test-item",class extends(Qe(s.LitElement,"on-request-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}}),customElements.define("qti-test-prev",class extends(Qe(s.LitElement,"on-prev-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}}),customElements.define("qti-test-check",class extends(Qe(s.LitElement,"on-check-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}}),customElements.define("qti-test-score",class extends(Qe(s.LitElement,"on-score-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}});const He={ON_ITEM_WAS_FINISHED:"onItemWasFinished",ON_NO_RESPONSE_ON_SUBMIT:"onNoResponseOnSubmit",ON_REQUEST_ITEM:"onRequestItem",ON_TEST_FINISHED:"onTestFinished"};var je,De;exports.NavigationMode=void 0,(je=exports.NavigationMode||(exports.NavigationMode={})).linear="linear",je.nonlinear="nonlinear",exports.SubmissionMode=void 0,(De=exports.SubmissionMode||(exports.SubmissionMode={})).individual="individual",De.simultaneous="simultaneous",exports.QtiTest=class extends s.LitElement{constructor(){super(...arguments),this.disabled=!1,this.readonly=!1,this._navigationMode=exports.NavigationMode.nonlinear,this._submissionMode=exports.SubmissionMode.simultaneous,this.items=[],this.itemIndex=0}handleNavigationModeChange(e,t){this.prevButton.style.visibility=t===exports.NavigationMode.linear?"hidden":"visible"}handleItemIndexChange(e,t){this._dispatchRequestItem(t)}set qtiContext(e){this.provider=new r.ContextProvider(this,q,{log:e=>{console.log(`[my-app] ${e}`)},view:e.view})}set itemXML(e){this._itemRef&&this._itemRef.remove(),this.insertAdjacentHTML("afterbegin",e)}set itemResponse(e){this._itemRef&&(this._itemRef.responses=e,this._navigationMode===exports.NavigationMode.linear&&(this._itemRef.style.filter="blur(5px)",this._itemRef.setAttribute("disabled",""),this.dispatchEvent(new CustomEvent(He.ON_ITEM_WAS_FINISHED))))}_onCheckItem(){return!!this._itemRef.validateResponses()&&(this._itemRef.processResponse(),!0)}_onScoreItem(){this._onCheckItem()&&this._itemRef.processResponse()}_onPrevItem(){this.itemIndex>0&&this._dispatchRequestItem(this.itemIndex-1)}_onNextItem(){this._navigationMode!==exports.NavigationMode.linear||this._itemRef.validateResponses()?this.itemIndex<this.items.length-1?this._dispatchRequestItem(this.itemIndex+1):this.dispatchEvent(new CustomEvent(He.ON_TEST_FINISHED)):this.dispatchEvent(new CustomEvent(He.ON_NO_RESPONSE_ON_SUBMIT))}_dispatchRequestItem(e){this.dispatchEvent(new CustomEvent(He.ON_REQUEST_ITEM,{bubbles:!0,composed:!0,detail:e}))}_onRequestItem(e){this._dispatchRequestItem(e.detail)}_handleSlotchange(e){const t=this.querySelector("qti-assessment-item");t&&(this._itemRef=t,this.disabled&&this._itemRef.setAttribute("disabled",""),this.readonly&&this._itemRef.setAttribute("readonly",""))}render(){return s.html`
|
|
317
|
+
<slot></slot>`}firstUpdated(){this.addEventListener("mousedown",this._onMouseDown.bind(this)),this.style.setProperty("--qti-slider-interaction-step",this.step?this.step.toString():"10");const e=this.getAttribute("value");this._moveSliderTo(e)}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}get RAIL_WIDTH(){return this.offsetWidth}_onKeyDown(e){let t=!1;const s=this.value;switch(e.keyCode){case qe:case Oe:this._moveSliderTo(s-this.step),t=!0;break;case Se:case _e:this._moveSliderTo(s+this.step),t=!0;break;case Re:this._moveSliderTo(s-this.step),t=!0;break;case ke:this._moveSliderTo(s+this.step),t=!0;break;case Ie:this._moveSliderTo(this.min),t=!0;break;case we:this._moveSliderTo(this.max),t=!0}t&&(e.preventDefault(),e.stopPropagation())}_onMouseDown(e){const t=e.target,s=this.min,i=this.max,n=e=>{const n=e.pageX-t.offsetLeft,r=s+(i-s)*n/this.RAIL_WIDTH;this._moveSliderTo(r),e.preventDefault(),e.stopPropagation()},r=()=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",r),this.saveResponse({base:{float:this.value}})};document.addEventListener("mousemove",n),document.addEventListener("mouseup",r),e.preventDefault(),e.stopPropagation(),e.target.focus();const o=e.pageX-t.offsetLeft,a=s+(i-s)*o/this.RAIL_WIDTH;this._moveSliderTo(a)}_moveSliderTo(e){const t=this.min,s=this.max;let i=Number(e);i<t&&(i=t),i>s&&(i=s);const n=(i-t)/(s-t)*100;this.style.setProperty("--qti-slider-interaction-aria-valuenow",`${n}%`)}}Te.styles=[ae,s.css``],m([i.property({type:Number,attribute:"lower-bound"}),g("design:type",Number),g("design:paramtypes",[Number])],Te.prototype,"min",null),m([i.property({type:Number,attribute:"upper-bound"}),g("design:type",Number),g("design:paramtypes",[Number])],Te.prototype,"max",null),m([i.property({type:Number,attribute:"step"}),g("design:type",Number),g("design:paramtypes",[Number])],Te.prototype,"step",null),customElements.define("qti-slider-interaction",Te);class Ae extends s.LitElement{constructor(){super(...arguments),this.render=()=>s.html`${this.value}`}levenshtein(e,t){let s;if(0===e.length)return t.length;if(0===t.length)return e.length;e.length>t.length&&(s=e,e=t,t=s);const i=e.length,n=t.length,r=Array(i);let o,a,l;for(o=0;o<=i;o++)r[o]=o;for(o=1;o<=n;o++){for(l=o,a=1;a<=i;a++)s=r[a-1],r[a-1]=l,l=Math.min(s+(t[o-1]!==e[a-1]),l+1,r[a]+1);r[a-1]=l}return l}calculate(){const e=this.firstElementChild,t=this.lastElementChild,s=e.calculate(),i=t.calculate();return this.value=100-this.levenshtein(s.toString().trim(),i.toString().trim())/i.toString().length*100,this.value}}Ae.properties={value:{}},customElements.define("qti-custom-operator-levenshtein",Ae);class Ne extends s.LitElement{render(){return s.html``}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return t?t.replace(/[^0-9$.,]/g,""):""}}customElements.define("qti-custom-operator-numeric",Ne);class Le extends s.LitElement{constructor(){super(...arguments),this.render=()=>s.html`${this.value}`}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return this.value=t?this.parseNumber(t,undefined):"",this.value}parseNumber(e,t=navigator.languages){const s=Intl.NumberFormat(t).format(1.1),i=new RegExp(`[^-+0-9${s.charAt(1)}]`,"g"),n=e.replace(i,"").replace(s.charAt(1),".");return parseFloat(n)}}Le.properties={value:{}},customElements.define("qti-custom-operator-parse-numeric-nl",Le);class Me extends s.LitElement{render(){return s.html``}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return t?t.replace(/ /g,""):""}}customElements.define("qti-custom-operator-remove-spaces",Me);class $e extends s.LitElement{render(){return s.html``}calculate(){return this.firstElementChild.calculate().toString().trim()}}customElements.define("qti-custom-operator-trim",$e);const Qe=(e,t)=>class extends e{_dispatch(){this.dispatchEvent(new CustomEvent(t,{composed:!0,bubbles:!0,detail:+this.getAttribute("index")}))}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._dispatch)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",this._dispatch)}};customElements.define("qti-test-next",class extends(Qe(s.LitElement,"on-next-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}}),customElements.define("qti-test-item",class extends(Qe(s.LitElement,"on-request-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}}),customElements.define("qti-test-prev",class extends(Qe(s.LitElement,"on-prev-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}}),customElements.define("qti-test-check",class extends(Qe(s.LitElement,"on-check-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}}),customElements.define("qti-test-score",class extends(Qe(s.LitElement,"on-score-item")){constructor(){super(...arguments),this.render=()=>s.html`<slot></slot>`}});const He={ON_ITEM_WAS_FINISHED:"onItemWasFinished",ON_NO_RESPONSE_ON_SUBMIT:"onNoResponseOnSubmit",ON_REQUEST_ITEM:"onRequestItem",ON_TEST_FINISHED:"onTestFinished"};var je,De;exports.NavigationMode=void 0,(je=exports.NavigationMode||(exports.NavigationMode={})).linear="linear",je.nonlinear="nonlinear",exports.SubmissionMode=void 0,(De=exports.SubmissionMode||(exports.SubmissionMode={})).individual="individual",De.simultaneous="simultaneous",exports.QtiTest=class extends s.LitElement{constructor(){super(...arguments),this.disabled=!1,this.readonly=!1,this._navigationMode=exports.NavigationMode.nonlinear,this._submissionMode=exports.SubmissionMode.simultaneous,this.items=[],this.itemIndex=0}handleNavigationModeChange(e,t){this.prevButton.style.visibility=t===exports.NavigationMode.linear?"hidden":"visible"}handleItemIndexChange(e,t){this._dispatchRequestItem(t)}set qtiContext(e){this.provider=new r.ContextProvider(this,q,{log:e=>{console.log(`[my-app] ${e}`)},view:e.view})}set itemXML(e){this._itemRef&&this._itemRef.remove(),this.insertAdjacentHTML("afterbegin",e)}set itemResponse(e){this._itemRef&&(this._itemRef.responses=e,this._navigationMode===exports.NavigationMode.linear&&(this._itemRef.style.filter="blur(5px)",this._itemRef.setAttribute("disabled",""),this.dispatchEvent(new CustomEvent(He.ON_ITEM_WAS_FINISHED))))}_onCheckItem(){return!!this._itemRef.validateResponses()&&(this._itemRef.processResponse(),!0)}_onScoreItem(){this._onCheckItem()&&this._itemRef.processResponse()}_onPrevItem(){this.itemIndex>0&&this._dispatchRequestItem(this.itemIndex-1)}_onNextItem(){this._navigationMode!==exports.NavigationMode.linear||this._itemRef.validateResponses()?this.itemIndex<this.items.length-1?this._dispatchRequestItem(this.itemIndex+1):this.dispatchEvent(new CustomEvent(He.ON_TEST_FINISHED)):this.dispatchEvent(new CustomEvent(He.ON_NO_RESPONSE_ON_SUBMIT))}_dispatchRequestItem(e){this.dispatchEvent(new CustomEvent(He.ON_REQUEST_ITEM,{bubbles:!0,composed:!0,detail:e}))}_onRequestItem(e){this._dispatchRequestItem(e.detail)}_handleSlotchange(e){const t=this.querySelector("qti-assessment-item");t&&(this._itemRef=t,this.disabled&&this._itemRef.setAttribute("disabled",""),this.readonly&&this._itemRef.setAttribute("readonly",""))}render(){return s.html`
|
|
318
318
|
<slot
|
|
319
319
|
@slotchange=${this._handleSlotchange}
|
|
320
320
|
@on-prev-item=${this._onPrevItem}
|
package/index.js
CHANGED
|
@@ -314,7 +314,7 @@ import{LitElement as e,html as t,css as s,render as i}from"lit";import{customEle
|
|
|
314
314
|
`],customElements.define("qti-order-interaction",je);class De extends V{constructor(){super()}render(){return t`<slot></slot>
|
|
315
315
|
<div class="notification"></div>`}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback()}}De.styles=[Ce],customElements.define("qti-select-point-interaction",De);const Fe=37,Pe=38,Ue=39,Be=40,Ge=33,ze=34,We=35,Ve=36;class Ke extends U{constructor(){super(),this.addEventListener("keydown",this._onKeyDown.bind(this))}reset(){}validate(){return!0}set response(e){}set min(e){this._min=e,this.style.setProperty("--qti-slider-interaction-lower-bounds",`${this._min}`)}get min(){return this._min}set max(e){this._max=e,this.style.setProperty("--qti-slider-interaction-upper-bounds",`${this._max}`)}get max(){return this._max}set step(e){this._step=e,this.style.setProperty("--qti-slider-interaction-step",`${this._step}`)}get step(){return this._step}render(){return t`
|
|
316
316
|
<slot name="prompt"></slot>
|
|
317
|
-
<slot></slot>`}firstUpdated(){this.addEventListener("mousedown",this._onMouseDown.bind(this)),this.style.setProperty("--qti-slider-interaction-step",this.step?this.step.toString():"10");const e=this.getAttribute("value");this._moveSliderTo(e)}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}get RAIL_WIDTH(){return this.offsetWidth}_onKeyDown(e){let t=!1;const s=this.value;switch(e.keyCode){case Fe:case Be:this._moveSliderTo(s-this.step),t=!0;break;case Ue:case Pe:this._moveSliderTo(s+this.step),t=!0;break;case ze:this._moveSliderTo(s-this.step),t=!0;break;case Ge:this._moveSliderTo(s+this.step),t=!0;break;case Ve:this._moveSliderTo(this.min),t=!0;break;case We:this._moveSliderTo(this.max),t=!0}t&&(e.preventDefault(),e.stopPropagation())}_onMouseDown(e){const t=e.target,s=this.min,i=this.max,n=e=>{const n=e.pageX-t.offsetLeft,r=s+(i-s)*n/this.RAIL_WIDTH;this._moveSliderTo(r),e.preventDefault(),e.stopPropagation()},r=()=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",r),this.saveResponse({base:{float:this.value}})};document.addEventListener("mousemove",n),document.addEventListener("mouseup",r),e.preventDefault(),e.stopPropagation(),e.target.focus();const o=e.pageX-t.offsetLeft,a=s+(i-s)*o/this.RAIL_WIDTH;this._moveSliderTo(a)}_moveSliderTo(e){const t=this.min,s=this.max;let i=Number(e);i<t&&(i=t),i>s&&(i=s);const n=(i-t)/(s-t)*100;this.style.setProperty("--qti-slider-interaction-aria-valuenow",`${n}%`)}}Ke.styles=[Ce,s``],C([r({type:Number,attribute:"lower-bound"}),O("design:type",Number),O("design:paramtypes",[Number])],Ke.prototype,"min",null),C([r({type:Number,attribute:"upper-bound"}),O("design:type",Number),O("design:paramtypes",[Number])],Ke.prototype,"max",null),C([r({type:Number,attribute:"step"}),O("design:type",Number),O("design:paramtypes",[Number])],Ke.prototype,"step",null),customElements.define("qti-slider-interaction",Ke);class Xe extends e{constructor(){super(...arguments),this.render=()=>t`${this.value}`}levenshtein(e,t){let s;if(0===e.length)return t.length;if(0===t.length)return e.length;e.length>t.length&&(s=e,e=t,t=s);const i=e.length,n=t.length,r=Array(i);let o,a,l;for(o=0;o<=i;o++)r[o]=o;for(o=1;o<=n;o++){for(l=o,a=1;a<=i;a++)s=r[a-1],r[a-1]=l,l=Math.min(s+(t[o-1]!==e[a-1]),l+1,r[a]+1);r[a-1]=l}return l}calculate(){const e=this.firstElementChild,t=this.lastElementChild,s=e.calculate(),i=t.calculate();return this.value=100-this.levenshtein(s.toString().trim(),i.toString().trim())/i.toString().length*100,this.value}}Xe.properties={value:{}},customElements.define("qti-custom-operator-levenshtein",Xe);class Qe extends e{render(){return t``}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return t?t.replace(/[^0-9$.,]/g,""):""}}customElements.define("qti-custom-operator-numeric",Qe);class Ye extends e{constructor(){super(...arguments),this.render=()=>t`${this.value}`}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return this.value=t?this.parseNumber(t,undefined):"",this.value}parseNumber(e,t=navigator.languages){const s=Intl.NumberFormat(t).format(1.1),i=new RegExp(`[^-+0-9${s.charAt(1)}]`,"g"),n=e.replace(i,"").replace(s.charAt(1),".");return parseFloat(n)}}Ye.properties={value:{}},customElements.define("qti-custom-operator-parse-numeric-nl",Ye);class Je extends e{render(){return t``}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return t?t.replace(/ /g,""):""}}customElements.define("qti-custom-operator-remove-spaces",Je);class Ze extends e{render(){return t``}calculate(){return this.firstElementChild.calculate().toString().trim()}}customElements.define("qti-custom-operator-trim",Ze);const et=(e,t)=>class extends e{_dispatch(){this.dispatchEvent(new CustomEvent(t,{composed:!0,bubbles:!0,detail:+this.getAttribute("index")}))}connectedCallback(){this.addEventListener("click",this._dispatch)}disconnectedCallback(){this.removeEventListener("click",this._dispatch)}};customElements.define("qti-test-next",class extends(et(e,"on-next-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}}),customElements.define("qti-test-item",class extends(et(e,"on-request-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}}),customElements.define("qti-test-prev",class extends(et(e,"on-prev-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}}),customElements.define("qti-test-check",class extends(et(e,"on-check-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}}),customElements.define("qti-test-score",class extends(et(e,"on-score-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}});const tt={ON_ITEM_WAS_FINISHED:"onItemWasFinished",ON_NO_RESPONSE_ON_SUBMIT:"onNoResponseOnSubmit",ON_REQUEST_ITEM:"onRequestItem",ON_TEST_FINISHED:"onTestFinished"};var st,it;!function(e){e.linear="linear",e.nonlinear="nonlinear"}(st||(st={})),function(e){e.individual="individual",e.simultaneous="simultaneous"}(it||(it={}));let nt=class extends e{constructor(){super(...arguments),this.disabled=!1,this.readonly=!1,this._navigationMode=st.nonlinear,this._submissionMode=it.simultaneous,this.items=[],this.itemIndex=0}handleNavigationModeChange(e,t){this.prevButton.style.visibility=t===st.linear?"hidden":"visible"}handleItemIndexChange(e,t){this._dispatchRequestItem(t)}set qtiContext(e){this.provider=new h(this,M,{log:e=>{console.log(`[my-app] ${e}`)},view:e.view})}set itemXML(e){this._itemRef&&this._itemRef.remove(),this.insertAdjacentHTML("afterbegin",e)}set itemResponse(e){this._itemRef&&(this._itemRef.responses=e,this._navigationMode===st.linear&&(this._itemRef.style.filter="blur(5px)",this._itemRef.setAttribute("disabled",""),this.dispatchEvent(new CustomEvent(tt.ON_ITEM_WAS_FINISHED))))}_onCheckItem(){return!!this._itemRef.validateResponses()&&(this._itemRef.processResponse(),!0)}_onScoreItem(){this._onCheckItem()&&this._itemRef.processResponse()}_onPrevItem(){this.itemIndex>0&&this._dispatchRequestItem(this.itemIndex-1)}_onNextItem(){this._navigationMode!==st.linear||this._itemRef.validateResponses()?this.itemIndex<this.items.length-1?this._dispatchRequestItem(this.itemIndex+1):this.dispatchEvent(new CustomEvent(tt.ON_TEST_FINISHED)):this.dispatchEvent(new CustomEvent(tt.ON_NO_RESPONSE_ON_SUBMIT))}_dispatchRequestItem(e){this.dispatchEvent(new CustomEvent(tt.ON_REQUEST_ITEM,{bubbles:!0,composed:!0,detail:e}))}_onRequestItem(e){this._dispatchRequestItem(e.detail)}_handleSlotchange(e){const t=this.querySelector("qti-assessment-item");t&&(this._itemRef=t,this.disabled&&this._itemRef.setAttribute("disabled",""),this.readonly&&this._itemRef.setAttribute("readonly",""))}render(){return t`
|
|
317
|
+
<slot></slot>`}firstUpdated(){this.addEventListener("mousedown",this._onMouseDown.bind(this)),this.style.setProperty("--qti-slider-interaction-step",this.step?this.step.toString():"10");const e=this.getAttribute("value");this._moveSliderTo(e)}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex","0"),this.setAttribute("role","slider")}get RAIL_WIDTH(){return this.offsetWidth}_onKeyDown(e){let t=!1;const s=this.value;switch(e.keyCode){case Fe:case Be:this._moveSliderTo(s-this.step),t=!0;break;case Ue:case Pe:this._moveSliderTo(s+this.step),t=!0;break;case ze:this._moveSliderTo(s-this.step),t=!0;break;case Ge:this._moveSliderTo(s+this.step),t=!0;break;case Ve:this._moveSliderTo(this.min),t=!0;break;case We:this._moveSliderTo(this.max),t=!0}t&&(e.preventDefault(),e.stopPropagation())}_onMouseDown(e){const t=e.target,s=this.min,i=this.max,n=e=>{const n=e.pageX-t.offsetLeft,r=s+(i-s)*n/this.RAIL_WIDTH;this._moveSliderTo(r),e.preventDefault(),e.stopPropagation()},r=()=>{document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",r),this.saveResponse({base:{float:this.value}})};document.addEventListener("mousemove",n),document.addEventListener("mouseup",r),e.preventDefault(),e.stopPropagation(),e.target.focus();const o=e.pageX-t.offsetLeft,a=s+(i-s)*o/this.RAIL_WIDTH;this._moveSliderTo(a)}_moveSliderTo(e){const t=this.min,s=this.max;let i=Number(e);i<t&&(i=t),i>s&&(i=s);const n=(i-t)/(s-t)*100;this.style.setProperty("--qti-slider-interaction-aria-valuenow",`${n}%`)}}Ke.styles=[Ce,s``],C([r({type:Number,attribute:"lower-bound"}),O("design:type",Number),O("design:paramtypes",[Number])],Ke.prototype,"min",null),C([r({type:Number,attribute:"upper-bound"}),O("design:type",Number),O("design:paramtypes",[Number])],Ke.prototype,"max",null),C([r({type:Number,attribute:"step"}),O("design:type",Number),O("design:paramtypes",[Number])],Ke.prototype,"step",null),customElements.define("qti-slider-interaction",Ke);class Xe extends e{constructor(){super(...arguments),this.render=()=>t`${this.value}`}levenshtein(e,t){let s;if(0===e.length)return t.length;if(0===t.length)return e.length;e.length>t.length&&(s=e,e=t,t=s);const i=e.length,n=t.length,r=Array(i);let o,a,l;for(o=0;o<=i;o++)r[o]=o;for(o=1;o<=n;o++){for(l=o,a=1;a<=i;a++)s=r[a-1],r[a-1]=l,l=Math.min(s+(t[o-1]!==e[a-1]),l+1,r[a]+1);r[a-1]=l}return l}calculate(){const e=this.firstElementChild,t=this.lastElementChild,s=e.calculate(),i=t.calculate();return this.value=100-this.levenshtein(s.toString().trim(),i.toString().trim())/i.toString().length*100,this.value}}Xe.properties={value:{}},customElements.define("qti-custom-operator-levenshtein",Xe);class Qe extends e{render(){return t``}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return t?t.replace(/[^0-9$.,]/g,""):""}}customElements.define("qti-custom-operator-numeric",Qe);class Ye extends e{constructor(){super(...arguments),this.render=()=>t`${this.value}`}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return this.value=t?this.parseNumber(t,undefined):"",this.value}parseNumber(e,t=navigator.languages){const s=Intl.NumberFormat(t).format(1.1),i=new RegExp(`[^-+0-9${s.charAt(1)}]`,"g"),n=e.replace(i,"").replace(s.charAt(1),".");return parseFloat(n)}}Ye.properties={value:{}},customElements.define("qti-custom-operator-parse-numeric-nl",Ye);class Je extends e{render(){return t``}calculate(){var e;const t=null===(e=this.firstElementChild.calculate())||void 0===e?void 0:e.toString();return t?t.replace(/ /g,""):""}}customElements.define("qti-custom-operator-remove-spaces",Je);class Ze extends e{render(){return t``}calculate(){return this.firstElementChild.calculate().toString().trim()}}customElements.define("qti-custom-operator-trim",Ze);const et=(e,t)=>class extends e{_dispatch(){this.dispatchEvent(new CustomEvent(t,{composed:!0,bubbles:!0,detail:+this.getAttribute("index")}))}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._dispatch)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",this._dispatch)}};customElements.define("qti-test-next",class extends(et(e,"on-next-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}}),customElements.define("qti-test-item",class extends(et(e,"on-request-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}}),customElements.define("qti-test-prev",class extends(et(e,"on-prev-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}}),customElements.define("qti-test-check",class extends(et(e,"on-check-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}}),customElements.define("qti-test-score",class extends(et(e,"on-score-item")){constructor(){super(...arguments),this.render=()=>t`<slot></slot>`}});const tt={ON_ITEM_WAS_FINISHED:"onItemWasFinished",ON_NO_RESPONSE_ON_SUBMIT:"onNoResponseOnSubmit",ON_REQUEST_ITEM:"onRequestItem",ON_TEST_FINISHED:"onTestFinished"};var st,it;!function(e){e.linear="linear",e.nonlinear="nonlinear"}(st||(st={})),function(e){e.individual="individual",e.simultaneous="simultaneous"}(it||(it={}));let nt=class extends e{constructor(){super(...arguments),this.disabled=!1,this.readonly=!1,this._navigationMode=st.nonlinear,this._submissionMode=it.simultaneous,this.items=[],this.itemIndex=0}handleNavigationModeChange(e,t){this.prevButton.style.visibility=t===st.linear?"hidden":"visible"}handleItemIndexChange(e,t){this._dispatchRequestItem(t)}set qtiContext(e){this.provider=new h(this,M,{log:e=>{console.log(`[my-app] ${e}`)},view:e.view})}set itemXML(e){this._itemRef&&this._itemRef.remove(),this.insertAdjacentHTML("afterbegin",e)}set itemResponse(e){this._itemRef&&(this._itemRef.responses=e,this._navigationMode===st.linear&&(this._itemRef.style.filter="blur(5px)",this._itemRef.setAttribute("disabled",""),this.dispatchEvent(new CustomEvent(tt.ON_ITEM_WAS_FINISHED))))}_onCheckItem(){return!!this._itemRef.validateResponses()&&(this._itemRef.processResponse(),!0)}_onScoreItem(){this._onCheckItem()&&this._itemRef.processResponse()}_onPrevItem(){this.itemIndex>0&&this._dispatchRequestItem(this.itemIndex-1)}_onNextItem(){this._navigationMode!==st.linear||this._itemRef.validateResponses()?this.itemIndex<this.items.length-1?this._dispatchRequestItem(this.itemIndex+1):this.dispatchEvent(new CustomEvent(tt.ON_TEST_FINISHED)):this.dispatchEvent(new CustomEvent(tt.ON_NO_RESPONSE_ON_SUBMIT))}_dispatchRequestItem(e){this.dispatchEvent(new CustomEvent(tt.ON_REQUEST_ITEM,{bubbles:!0,composed:!0,detail:e}))}_onRequestItem(e){this._dispatchRequestItem(e.detail)}_handleSlotchange(e){const t=this.querySelector("qti-assessment-item");t&&(this._itemRef=t,this.disabled&&this._itemRef.setAttribute("disabled",""),this.readonly&&this._itemRef.setAttribute("readonly",""))}render(){return t`
|
|
318
318
|
<slot
|
|
319
319
|
@slotchange=${this._handleSlotchange}
|
|
320
320
|
@on-prev-item=${this._onPrevItem}
|